我目前在我的模型中拥有的是:
class Project(models.Model):
project_name = models.CharField(max_length=255, unique=True, blank=False)
def __str__(self):
return str(self.project_name)
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
role = models.CharField(choices=ROLE_CHOICES, max_length=255, default='Agent')
现在我的问题是:用户应该能够拥有多个项目 - 所以我显然不能在Profile-Model中使用OneToOne-Field。
后来我想用它来举例说明只显示与他参与的项目相关的用户新闻。
使这成为可能的最佳策略是什么?任何意见都非常感谢。
答案 0 :(得分:1)
在项目中使用ManyToMany。
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
role = models.CharField(choices=ROLE_CHOICES, max_length=255, default='Agent')
project = models.ManyToManyField(Project)
这样一个配置文件可以拥有他/她想要的项目数量
在您的视图中,您可以使用此字段根据项目
进行过滤