2013-07-14 50 views
-1

我有两个用户之间的对话模型。Django中的模型关系

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

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

回答

2

看一看增加额外的字段,以您的ManyToManyFieldvia 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() 
+1

您将需要一个外键'Conversation'模型太中虽然表 – karthikr

+1

良好的渔获,我已经更新的例子。 –

+0

我刚完成更新模型,结果证明我正是需要的。谢谢。 –