gpt4 book ai didi

python - Django 项目结构,跨应用程序共享扩展 auth "User"模型的推荐结构?

转载 作者:太空宇宙 更新时间:2023-11-04 06:53:54 25 4
gpt4 key购买 nike

我想知道当用户模型扩展/子类化并且这个结果用户模型在多个应用程序之间共享和使用时,常见的项目/应用程序结构是什么。

我想在多个应用中引用相同的用户模型。我还没有构建登录界面,所以我不确定它应该如何组合在一起。

想到以下内容:

project.loginapp.app1
project.loginapp.app2

这种情况有通用模式吗?登录最好由“登录应用程序”处理吗?

与这个问题类似,但更具体。 django application configuration

更新

在上面阐明了我的用例。我想向现有的身份验证用户模型添加字段(扩展或子类?)。然后在多个应用中引用该模型。

最佳答案

为什么要扩展用户?请澄清。

如果您要添加有关用户的更多信息,则无需推出自己的用户和身份验证系统。 Django 的版本非常可靠。用户管理位于 django.contrib.auth。

如果需要自定义存储用户的信息,首先定义一个模型如

class Profile(models.Model):
...
user = models.ForeignKey("django.contrib.auth.models.User", unique=True)

然后设置

AUTH_PROFILE_MODULE = "appname.profile"

在你的 settings.py 中

设置这个的好处是允许你在你的 View 中使用这样的代码:

def my_view(request):
profile = request.user.get_profile()
etc...

如果您尝试为用户提供更多的身份验证方式,您可以添加一个身份验证后端。扩展或重新实现 django.contrib.auth.backends.ModelBackend 并将其设置为您在 settings.py 中的 AUTHENTICATION_BACKENDS。

如果您想使用不同于 django 提供的权限或组概念,没有什么可以阻止您。 Django 仅在 django.contrib.admin(据我所知)中使用了这两个概念,您可以根据需要自由使用其他概念来处理这些主题。

关于python - Django 项目结构,跨应用程序共享扩展 auth "User"模型的推荐结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/576345/

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