在Django中,是否可以通过两个模型之间的多个中间模型来创建多个多对多关系?
例如,我有一个对象用户和一个对象stock_position,并且每次用户进行交易时,我都想创建一个以user和stock_position作为外键的中间模型(交易)。
答案 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
(您通常/始终应该在代码中有例外)