django: Required Field Not Having The “required” Attribute in HTML
我对姜戈不熟悉,我觉得到目前为止这很好。今天我遇到了一个奇怪的问题:我有这个表单模型:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | class RegisterForm2(UserCreationForm): mobile2 = forms.CharField( label=_('Mobile Confirmation'), max_length=50, required=True, widget = forms.TextInput(attrs = {'class':'nocopy'}) ) class Meta: model = User fields = ['username', 'mobile', 'mobile2', 'guardian_mobile'] labels = { 'username': _('Government ID'), } widgets = { # workaround since __init__ setting to required doesnt work 'mobile': forms.TextInput(attrs = {'required':''}), } def __init__(self, *args, **kwargs): super(RegisterForm2, self).__init__(*args, **kwargs) self.fields['mobile'].required = True |
现在mobile字段在模型中有blank=true,但我只希望在表单中需要它,所以我在uu in it_uuuuuuuuu中这样做了。现在,它将字段设置为必需,但不向文本输入中添加required=。现在,如果我像mobile2字段那样重写了字段(并添加了required=true),我就不会有这个问题。这是一个问题,因为如果我想要在字段上显示所需的属性,我必须重写表单中的字段,以添加Required=true,这将违反dry原则。我是缺了什么东西还是这是某种虫子?
编辑:我没有提到我使用的是软盘。可能与此有关。我必须进一步调查这个问题。
注意这个答案假设你使用的是普通的django表单,我在你提到你使用的是软盘表单之前就写了它。
Django当前在呈现表单字段时不添加
请注意,
django将把
这在你的
埃多克斯1〔8〕
but i want it to be required in the form only
号
1 | 'mobile': forms.TextInput(attrs = {'required':''}), |
也可以在views.py中执行此操作。我喜欢这样做。
1 | form.fields['mobile'].widget.attrs['required'] = True |
号