具有自动增量非PK键的模型

时间:2013-10-28 18:22:26

标签: django django-models

我正在编写一个模型,我使用的是自动增量键,它基于两个外键而不是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 个答案:

答案 0 :(得分:0)

Django doesn't support composite primary keys,所以最好的方式就是你现在正在做的事情。

保留Django生成的自动id列,然后为实际上是主键的列添加唯一索引,然后唯一索引将负责确保没有重复项。