Django 中自定义用户和管理器的专有名称

proper name for custom User and Manager in Django

在我的 django 项目中,我为用户及其管理器创建了自定义模型 class。 我将它们命名为 User(继承自 AbstractUser)和 UserManager(继承自 BaseUserManager)。鉴于这些是这些模型的默认 django 名称,这有什么问题吗? 我 运行 以下形式 django shell:

>>>from django.contrib.auth import get_user_model
>>>user = get_user_model() 
>>>user.objects

这些是输出:

<class 'myapp.models.models.User'>
<class 'myapp.models.models.UserManager'>

貌似没有冲突,好像没问题。我希望一些 django 专家可以确认我以后通过开发不会有任何惊喜。

没问题。

但是,您必须通过在 settings.py 文件中定义 AUTH_USER_MODEL 设置来告诉 Django 您已经完成自定义用户模型并希望使用它。

AUTH_USER_MODEL = '<name_of_your_app>.<name_of_your_user_model'

在我的一个项目中,我做了:例如AUTH_USER_MODEL = 'base.User'

官方文档中有更多信息HERE