我正在使用Django的标准django.contrib.auth.models
在我的网站上实施授权。我在我的DB email
表中添加了一个NON-NULL auth_user
字段。问题是在Django中,ORM email
似乎可以为空。换句话说,Django不尊重MySQL中DB字段的非null属性。有没有办法告诉Django这个字段是否需要在DB中指定,并且在表单的if field.required == True:
方法中进行__init__
检查时反映这些信息?
我的模型和各自的表格如下所示:
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',)
答案 0 :(得分:1)
没有必要做任何事情。 EmailFields存储为varchars,并设置为空字符串而不是null时为空。
如果您想在表单上进行此操作,请使用__init__
方法执行此操作:
self.fields['email'].required = True