对于我的应用程序,应该要求用户的电子邮件字段.对于默认的用户模型,情况并非如此.所以我认为按照docs中的描述创建自定义用户模型是有意义的:
If you’re starting a new project,it’s highly recommended to set up a
custom user model,even if the default User model is sufficient for
you. This model behaves identically to the default user model,but
you’ll be able to customize it in the future if the need arises:
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
email = models.EmailField(_('email address'),blank=False)
但是,我不确定这是否是实现这一目标的正确方法.
原因是here Django文档说:
Abstract base classes are useful when you want to put some common
information into a number of other models. You write your base class
and put abstract=True in the Meta class. This model will then not be
used to create any database table. Instead,when it is used as a base
class for other models,its fields will be added to those of the child
class. It is an error to have fields in the abstract base class with
the same name as those in the child (and Django will raise an
exception).
我现在应该怎么做?
我在开始帖子中描述的方式应该有效.文档是错的:
https://code.djangoproject.com/ticket/29192