Django:允许单个配置文件的多个帐户

时间:2017-12-10 13:00:51

标签: django python-2.7 django-models

我想为我的应用中的单个配置文件启用多次登录(凭据和权限)。

这是我目前的代码:

from django.contrib.auth.models import User

class Profile(models.Model):

   user = models.OneToOneField(User, on_delete=models.CASCADE)

理想情况下,我希望User模型有一个ForeignKey to Profile,就是这样。然后,我可以为同一个配置文件有几个用户,我的问题将得到解决。 不幸的是,我不想扩展User模型,因为它非常讨厌,所以我希望能够将它放在我的Profile模型中。

ManyToManyField可以工作,但是用户可能有多个配置文件,但这是不可能的。

你有一个干净,简单的方法来制作某种“反向外键”吗?

最佳,

1 个答案:

答案 0 :(得分:0)

首先扩展User模型并不讨厌。 无论如何,您不需要扩展用户模型来完成这项工作 您只需要对用户模型的外键约束

class Profile(models.Model):
   user = models.ForeignKey(User, models.DO_NOTHING)

共享模型(表记录)与其他几个用户(表记录)是一个非常常见的概念数据库开发。 如果你的views.py有问题,那么请问其他问题

user.profile_set 

这是对所有用户共享此配置文件的反向访问权限 见doc following relationships backward