-1

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

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

我有一个用于消息的子模型。我想包括一个布尔字段,允许每个用户切换对话的可见性。但我不希望这影响其他用户的对话,所以我不能将它添加到对话模型中。我是否有一种有效的方法可以为每个用户添加一个布尔字段来执行此操作,同时仍然共享相同的对话模型?

4

1 回答 1

2

看看ManyToManyField 通过through参数向您添加额外的字段:

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()
于 2013-07-14T20:23:01.183 回答