首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义Django用户模型以考虑数据库非空标记

问自定义Django用户模型以考虑数据库非空标记
EN

Stack Overflow用户
提问于 2017-02-01 17:24:45
回答 1查看 16关注 0票数 0

我正在使用Django的标准django.contrib.auth.models在我的网站上实现授权。我已经向我的DB auth_user表添加了一个非空的email字段。问题是在Django的ORM中,email似乎是可以为空的。换句话说,Django不考虑MySQL中DB字段的非空属性。有没有办法告诉Django这个字段是DB中指定的必填字段,并在表单的__init__方法中执行if field.required == True:检查时反映此信息?

我的模型和各自的表单如下所示:

代码语言:javascript
复制
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',)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-01 17:25:45

不需要做任何事情。EmailFields存储为varchars,并且在为空时设置为空字符串而不是null。

如果您想在表单上设置为必填项,则在该__init__方法中执行此操作:

代码语言:javascript
复制
self.fields['email'].required = True
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41976082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档