2013-07-14 179 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

我剛完成更新模型,結果證明我正是需要的。謝謝。 –