我有一个表单只显示我不想要的标签文本,我尽我所能让它从我的表单中删除但是它不会只是...
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
。
答案 0 :(得分:12)
在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 }}
答案 1 :(得分:5)
在__init__
方法中,将字段标签设置为空。这将删除标签文本。
def __init__(self, *args, **kwargs):
super(sign_up_form, self).__init__(*args, **kwargs)
self.fields['email'].label = ""
答案 2 :(得分:-1)
只需在窗口小部件中为字段设置一个类,然后按照您的样式添加:
.ClassName label{
display: none;
}