Django用户在多个应用程序中使用自定义数据

时间:2015-02-06 11:26:37

标签: django django-models

客户用户模型非常棒,但如果您想构建一个结合多个应用程序的项目,每个应用程序都可以假设它将用户模型作为其模型的一部分。我的计划是恢复标准的django用户,并在每个应用程序中都有个人资料。

例如

app1.models.py

from django.contrib.auth.models import User

Class App1User(models.Model):
    user = models.OneToOne(User)
    special = models.CharField( some field that relates to the user in this app)

app2.models.py

from django.contrib.auth.models import User

Class App2User(models.Model):
    user = models.OneToOne(User)
    another = models.CharField( some field that relates to the user in this app)

然后添加代码以在需要时获取相关的配置文件数据,可能会添加一些中间件或模板上下文处理器。在我走这条路之前,我想检查这是最Djangoeque的解决方案吗?

1 个答案:

答案 0 :(得分:0)

Imho是的,你是以正确的方式做到的。

并且您不需要任何中间件或上下文处理器来为用户获取相关数据。 OneToOne字段可以作为user实例的属性

轻松访问
{{ user.app1user.special }}
{{ user.app2user.another }}