我是新来的django,我认为到目前为止这是非常棒的。我今天面临着一个奇怪的问题:
我有这个模型: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 field在模型中有blank=True,但我希望它只在表单中被要求,所以我在初始化中这样做了。现在,它将字段设为必需字段,但不会将required=“”添加到文本输入中。现在,如果我像mobile2一样重写字段(并添加required=True),我就不会有这个问题了。这是一个问题,因为如果我想在字段上显示required属性,我必须重写表单中的字段,以添加required=True,这将违反DRY原则。是我漏掉了什么东西还是某种虫子?在
编辑:
我没提到我使用的是软盘。可能与此有关。我必须进一步调查这个问题。在