ManyToManyField有两种可能的数据类型

时间:2015-02-16 11:19:55

标签: python django django-queryset manytomanyfield

我正在努力让ManyToManyField使用through模型,它看起来像这样:

class DirectorCredit(models.Model):
    director = models.ForeignKey(Person, null=False)
    movie = models.ForeignKey(Movie, null=True)
    tv_show = models.ForeignKey(TVShow, null=True)
    ordering = models.IntegerField(default=0)

然后,我希望MovieTVShow模型能够通过ManyToManyField(或类似机制)访问这些学分:

class Movie(models.Model):
    ....
    directors = models.ManyToManyField(Person, through='DirectorCredit')
    ....

(与TVShow相同)

这种结构可能吗? movieObject.directors.all()会使用包含该电影的DirectorCredit个条目向我提取所有导演吗?我能用TVShow模型做同样的事吗?

1 个答案:

答案 0 :(得分:0)

它应该有效,但它不是很好的解决方案。原因是你可以错误地将电影和电视节目放入一个DirectorCredit对象中。

考虑使用gM2M建立这种关系。