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
在我的 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