gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 00:47:59 26 4
gpt4 key购买 nike

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com