【问题标题】:ManyToManyField with two possible data types具有两种可能的数据类型的 ManyToManyField
【发布时间】:2015-02-16 11:19:55
【问题描述】:

我正在尝试让 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')
    ....

(和电视剧一样)

这种结构可能吗? movieObject.directors.all() 会帮我找到所有包含该电影的DirectorCredit 条目的导演吗?我可以用TVShow 模型做同样的事情吗?

【问题讨论】:

  • 有趣,我其实不知道会发生什么。为什么不试试呢?

标签: python django django-queryset manytomanyfield


【解决方案1】:

它应该可以工作,但它不是很好的解决方案。原因是您可能会错误地将电影和电视节目放在一个 DirectorCredit 对象中。

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

【讨论】:

    猜你喜欢
    • 2017-03-27
    • 2012-09-12
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多