两个Django对象之间可以有多个中间模型吗?

时间:2019-09-26 06:45:12

标签: django django-models

在Django中,是否可以通过两个模型之间的多个中间模型来创建多个多对多关系?

例如,我有一个对象用户和一个对象stock_position,并且每次用户进行交易时,我都想创建一个以user和stock_position作为外键的中间模型(交易)。

1 个答案:

答案 0 :(得分:0)

您的意思是这样吗?

class Transactions(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    stock_position = models.ForeignKey(StockPosition,
                     on_delete=models.CASCADE)
    share = models.IntegerField()

    class Meta:
        unique_together = (('user', 'stock_position', 'share'),)

如果使用此唯一索引,则只要share列每次都不同,就可以插入任意数量的user / stock_position重复项。否则,将引发IntegrityError(您通常/始终应该在代码中有例外)