Django中的模型关系

时间:2013-07-14 20:09:22

标签: django django-models relationship

我有两个用户之间的对话模型。

class Conversation(models.Model):
    users = models.ManyToManyField(User)
    recipient1_pk = models.CharField(max_length=100)
    recipient2_pk = models.CharField(max_length=100)

我有一个儿童模型的消息。我将包含一个布尔字段,允许每个用户切换对话的可见性。但我不希望这会影响其他用户的对话,所以我不能将其添加到对话模型中。有没有一种有效的方法让我为每个用户添加一个布尔字段来实现这一点,同时仍然共享相同的对话模型?

1 个答案:

答案 0 :(得分:2)

请查看为ManyToManyField via the through parameter添加额外字段:

class Conversation(models.Model):
    users = models.ManyToManyField(User, through='ConversationPreferences')
    recipient1_pk = models.CharField(max_length=100)
    recipient2_pk = models.CharField(max_length=100)

class ConversationPreferences(models.Model):
    user = models.ForeignKey(User)
    conversation = models.ForeignKey(Conversation)
    visibility = models.BooleanField()