我有一个扩展AbstractUser的自定义用户模型。我添加了两个自定义字段。但是我希望默认的电子邮件字段是uniqe,并且是必填字段。我在网上进行了大量搜索,但找不到很好的建议。

用覆盖的“ clean_email”方法在扩展的usercreationform中执行此操作的正确方法吗?

谢谢

最佳答案

我面临着同样的问题,我扩展了AbstractUser,因为我只需要添加信息。这是唯一对我有用的东西:

AbstractUser._meta.get_field('email')._unique = True


那解决了独特的问题,但是我仍然不是必需的,当您扩展AbstractUser it电子邮件字段NOT时,如果您从管理员添加扩展用户,并且由于表单不采用这种方式,也会引起注意。

我试过了

AbstractUser._meta.get_field('email')._blank = False
AbstractUser._meta.get_field('email')._null = False


但这似乎不起作用。

编辑:
由于某些原因,'_'可以唯一地起作用,但是空白和null不能,我只是尝试了

AbstractUser._meta.get_field('email').blank = False
AbstractUser._meta.get_field('email').null = False


而且有效!

08-28 11:30