我正在编写一个模型,我使用的是自动增量键,它基于两个外键而不是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不能用于这种情况。 实现这一目标的最佳方法是什么? (可能是这种情况,同时创建了两条新消息)。
答案 0 :(得分:0)
Django doesn't support composite primary keys,所以最好的方式就是你现在正在做的事情。
保留Django生成的自动id列,然后为实际上是主键的列添加唯一索引,然后唯一索引将负责确保没有重复项。