python - django 中的 get_user_model() 、settings.AUTH_USER_MODEL 和 USER 有什么区别?

标签 python django django-models

get_user_model() 、settings.AUTH_USER_MODEL 和 django 中的用户有什么区别?

最佳答案

它们有不同的用例。

您需要使用 get_user_model()settings.AUTH_USER_MODEL 来引用用户模型在处理“未知”用户模型时。 例如。您正在编写一个将在不同应用程序中使用的模块,这些应用程序可能使用自定义用户模型。

如果您正在编写一个不会被重用的简单应用程序,如果您愿意,您可以使用 User 模型,如果您自定义它,您可以从您的模型中导入它,或者从django 本身。例如。 从 myapp.models 导入 MyUserModel

特别是,你必须使用:

  • get_user_model() 当你需要导入 User 模型进行查询时。例如。
User = get_user_model()
User.objects.filter(...)
  • settings.AUTH_USER_MODEL 当您需要在 ForeignKeyManyToManyFieldOneToOneField 中引用 User 模型时。例如
class MyModel(models.Model):
 user = models.ForeignKey(settings.AUTH_USER_MODEL)

如果您在创建 ForeignKeyManyToManyFieldOneToOneField`时尝试使用用户 get_user_model(),则可能会遇到循环导入问题。

如果您想为用户模型提供自定义实现,您还必须在 settings.py 中设置 settings.AUTH_USER_MODEL。例如。 AUTH_USER_MODEL='myapp.MyUserModel

关于python - django 中的 get_user_model() 、settings.AUTH_USER_MODEL 和 USER 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54720133/

相关文章:

python - 获取列与某个值匹配的行的索引

python - 使用 QtWebKit 在内存中渲染多个网页在第二页上中断,为什么?

python - Django 中不同数据库中存储的模型之间可以建立关系吗?

python - 如何从特定的 Django 模型实例中获取所有 RelatedManagers?

python - 为什么我不能访问 Meta 类作为 Django 模型类的属性?

python - 运行训练 2 个模型后,keras 退出代码 -1073741819 (0xC0000005)

python - 更改光标在条目小部件中的位置

django - Django 表单中的奇怪行为(只读字段/小部件)

django - 通过 django social auth 和 tastypie 对 Backbone 应用程序进行身份验证

python - 如何将多个 Django 模型收集到一个列表中?