rat*_*ata 6 django django-forms
我有一个扩展AbstractUser的自定义用户模型.我添加了两个自定义字段.但我希望默认的电子邮件字段是唯一且必需的.我在网上搜索了很多,但找不到好的建议.
使用重写的'clean_email'方法在扩展的usercreationform中执行此操作是否正确?
感谢名单
我面临同样的问题,我正在扩展AbstractUser,因为我只需要添加信息.这是唯一对我有用的东西:
AbstractUser._meta.get_field('email')._unique = True
Run Code Online (Sandbox Code Playgroud)
这解决了这个独特的问题,但是我仍然无法让它成为必需,当你扩展AbstractUser它的电子邮件字段不是时,如果你从管理员添加扩展用户并且因为表单不采取这种方式,它会被注意到.
我试过了
AbstractUser._meta.get_field('email')._blank = False
AbstractUser._meta.get_field('email')._null = False
Run Code Online (Sandbox Code Playgroud)
但它似乎没有用.
编辑:出于某种原因,使用'_'的唯一作品,但空白和null不,我只是试过这个
AbstractUser._meta.get_field('email').blank = False
AbstractUser._meta.get_field('email').null = False
Run Code Online (Sandbox Code Playgroud)
它奏效了!
也许您可以覆盖__init__模型上的 以使该字段成为必需且唯一的。
更新
经过一番尝试后,我发现这说起来容易做起来难(我还没有找到一种方法,可以在required = False父类上创建子类中所需的字段)。