我想为我的应用中的单个配置文件启用多次登录(凭据和权限)。
这是我目前的代码:
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可以工作,但是用户可能有多个配置文件,但这是不可能的。
你有一个干净,简单的方法来制作某种“反向外键”吗?
最佳,
答案 0 :(得分:0)
首先扩展User模型并不讨厌。 无论如何,您不需要扩展用户模型来完成这项工作 您只需要对用户模型的外键约束
class Profile(models.Model):
user = models.ForeignKey(User, models.DO_NOTHING)
共享模型(表记录)与其他几个用户(表记录)是一个非常常见的概念数据库开发。 如果你的views.py有问题,那么请问其他问题
user.profile_set
这是对所有用户共享此配置文件的反向访问权限 见doc following relationships backward