2013-10-28 67 views
0

我正在寫一個模型,我使用的自動增量鍵,它是基於兩個外鍵,而不是PK。模型與自動增量非PK鍵

class Message(models.Model): 
    message_id = models.IntegerField() 
    user_1 = models.ForeignKey(User) 
    user_2 = models.ForeignKey(User) 
    class Meta: 
     unique_together = ("message_id", "user_1", "user_2") 

據我所知,一個AutoField不能用於這種情況。 達到此目的的最佳方法是什麼? (可能是這種情況,兩個新消息是同時創建的)。

+1

爲什麼你不能只用pk? –

+0

pk可以管理您的需求,因爲兩個新消息同時創建 –

+0

我不能使用pk,因爲我想檢查客戶端的序列。 – melbic

回答

0

Django doesn't support composite primary keys,但是,最好的方式就是現在你所做的。

保留Django生成的自動id列,然後爲實際爲主鍵的列添加唯一索引,然後唯一索引將確保沒有重複項。