如何在 Django 生成的表单中删除标签文本?
Posted
技术标签:
【中文标题】如何在 Django 生成的表单中删除标签文本?【英文标题】:How do I remove Label text in Django generated form? 【发布时间】: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
?
【参考方案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 = ""
【讨论】:
以上是关于如何在 Django 生成的表单中删除标签文本?的主要内容,如果未能解决你的问题,请参考以下文章