我正在使用Django的标准django.contrib.auth.models在我的网站上实现授权。我已经向我的DB auth_user表添加了一个非空的email字段。问题是在Django的ORM中,email似乎是可以为空的。换句话说,Django不考虑MySQL中DB字段的非空属性。有没有办法告诉Django这个字段是DB中指定的必填字段,并在表单的__init__方法中执行if field.required == True:检查时反映此信息?
我的模型和各自的表单如下所示:
class UserForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(UserForm, self).__init__(*args, **kwargs)
for field_name, field in self.fields.items():
if field.required == True:
field.widget.attrs['required'] = ''
class Meta:
model = User
fields = ('email', 'password',)发布于 2017-02-01 17:25:45
不需要做任何事情。EmailFields存储为varchars,并且在为空时设置为空字符串而不是null。
如果您想在表单上设置为必填项,则在该__init__方法中执行此操作:
self.fields['email'].required = Truehttps://stackoverflow.com/questions/41976082
复制相似问题