在Django中强制要求使用电子邮件字段

时间:2014-03-17 18:25:50

标签: python django django-models django-admin

According to Django documentation,'电子邮件'字段是可选的。我想更改Django提供的这个默认行为。

我已经扩展了模型以添加一些自定义字段,但我仍然无法覆盖它(由于技术限制)。我在这里看到了一些关于User模型相关问题的其他问题,他们通常建议将注册表单子类化为需要电子邮件字段。

但是,您无法从管理员方面执行此操作。我的应用程序没有注册表单,但必须从管理面板添加用户。

到目前为止,我一直在谷歌搜索一段时间,似乎根本不可能,或者我必须重新创建一个完整的模型才能改变它,这对我来说听起来不是最佳解决方案。 / p>

有没有人有更好的方法?

1 个答案:

答案 0 :(得分:0)

如果您只想要使电子邮件字段成为必需,那么最干净的方法是创建一个与原始用户模型完全相同的自定义用户模型,但将电子邮件字段设置为唯一。 Django已经拥有了一个AbstractUser类,可以满足您的需求。您可以像这样修改User模型 -

class MyUser(AbstractUser):
    # your extra fields

进行更改后,Django会在您使用它的任何地方保留所需的电子邮件字段,即使是在管理员面板中也是如此。