【问题标题】:How do I remove Label text in Django generated form?如何在 Django 生成的表单中删除标签文本?
【发布时间】:2014-11-08 10:45:27
【问题描述】:

我有一个表单,它只针对我不想要的标签文本显示良好,我已尽我所能将其从我的表单中删除,但它不会消失...

forms.py

class sign_up_form(forms.ModelForm):
    class Meta:
        model = Users
        fields =['email']
        widgets = {
            'email': forms.EmailInput(attrs={
                'id': 'email',
                'class': 'form-control input-lg emailAddress',
                'name': 'email',
                'placeholder': 'Enter a valid email'})}

我尝试过: views.py

from django.shortcuts import render
from mysite.forms import sign_up_form

def register(request):
    sign_up = sign_up_form(auto_id=False)
    context = {'sign_up_form': sign_up}
    return render(request, 'mysite/register.html', context)

我需要上面定义的widgets

【问题讨论】:

  • 你是如何渲染表单的?
  • 您是否尝试将label: '' 添加到attrs

标签: python django django-forms django-templates


【解决方案1】:

在 ModelForms 中会有默认标签,因此您必须在不需要标签的地方覆盖

你可以这样定义

class sign_up_form(forms.ModelForm):
    email = forms.CharField(widget=forms.Textarea, label='')
    class Meta:
        model = Users
        fields =['email']

此方法不会包含表单的标签,其他方法取决于在模板中呈现。您总是可以避免形式上的标签 <label>MY LABEL</label> 而不是 {{ form.field.label }}

【讨论】:

    【解决方案2】:

    __init__ 方法中将您的字段标签设置为空。这将删除标签文本。

    def __init__(self, *args, **kwargs):
            super(sign_up_form, self).__init__(*args, **kwargs)
            self.fields['email'].label = ""
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-13
      • 2020-09-08
      • 1970-01-01
      • 2020-12-06
      • 1970-01-01
      • 2013-04-26
      • 2021-11-13
      • 2018-07-07
      相关资源
      最近更新 更多