【发布时间】:2018-03-06 15:47:12
【问题描述】:
对于我的应用程序,用户的电子邮件字段应该是必需的。默认用户模型不是这种情况。所以我认为按照docs 中的描述创建自定义用户模型是有意义的:
如果您要开始一个新项目,强烈建议您设置一个 自定义用户模型,即使默认用户模型足以 你。此模型的行为与默认用户模型相同,但 如果需要,您将来可以对其进行自定义:
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
email = models.EmailField(_('email address'), blank=False)
但是,我不确定这是否是实现这一目标的正确方法。
原因是here Django 文档说:
抽象基类在你想把一些常见的 信息转化为许多其他模型。你写你的基类 并将 abstract=True 放在 Meta 类中。那么这个模型就不会 用于创建任何数据库表。相反,当它被用作基础时 其他模型的类,其字段将添加到子模型的字段中 班级。 在抽象基类中有字段是错误的 与孩子同名(Django 会提出一个 例外)。
我现在该怎么办?
【问题讨论】: