【问题标题】:Difference between AbstractUser and AbstractBaseUser in Django?Django中AbstractUser和AbstractBaseUser的区别?
【发布时间】:2014-02-02 18:18:27
【问题描述】:

AbstractUserAbstractBaseUser 的用法看起来很相似。

from django.contrib.auth.models import AbstractUser, AbstractBaseUser

两者有什么区别?

【问题讨论】:

    标签: python django


    【解决方案1】:

    documentation 充分解释了这一点。 AbstractUser 是一个完整的 User 模型,包含字段,作为一个抽象类,因此您可以从它继承并添加自己的配置文件字段和方法。 AbstractBaseUser 仅包含身份验证功能,但没有实际字段:您必须在子类化时提供它们。

    【讨论】:

      【解决方案2】:

      AbstractUser 基本上只是您可能已经习惯的“用户”类。 AbstractBaseUser 做的假设更少,您必须告诉它哪个字段代表用户名,需要哪些字段以及如何管理这些用户。

      如果您只是向现有用户添加内容(即带有额外字段的个人资料数据),请使用 AbstractUser,因为它更简单、更容易。如果您想重新考虑 Django 关于身份验证的一些假设,那么 AbstractBaseUser 为您提供了这样做的能力。

      【讨论】:

      • 您也可以告诉 AbstractUser 类使用哪个字段作为用户名。
      猜你喜欢
      • 2020-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 1970-01-01
      相关资源
      最近更新 更多