使用AbstractUser
和AbstractBaseUser
看起来非常相似.
from django.contrib.auth.models import AbstractUser, AbstractBaseUser
两者有什么区别?
AbstractUser基本上只是您可能习惯使用的"用户"类.AbstractBaseUser做出的假设更少,您必须告诉它哪个字段代表用户名,需要哪些字段以及如何管理这些用户.
如果您只是向现有用户添加内容(即带有额外字段的配置文件数据),则使用AbstractUser,因为它更简单,更容易.如果您想重新考虑Django关于身份验证的一些假设,那么AbstractBaseUser将为您提供这样做的权力.
该文件充分说明了这一点.AbstractUser
是一个完整的用户模型,包含字段,作为抽象类,以便您可以继承它并添加自己的配置文件字段和方法.AbstractBaseUser
仅包含身份验证功能,但不包含实际字段:您必须在子类时提供它们.