我被困在困扰我的 Django ORM 问题上。我有一组由外键链接的模型,但要求有点奇怪。我需要按它们的关系列出项目。这很难解释,所以我试图在下面描述这一点,给定:
工作
- 多对多(获奖)
奖
- ForeignKey(AwardCategory)
奖项类别
我需要列出工作项目,以便按奖励类别列出。期望的输出是:
工作实例 A
- 属于奖励类别实例 A 的奖励实例 A
- 属于奖励类别实例 A 的奖励实例 C
- 属于奖励类别实例 A 的奖励实例 G
工作实例A(与上述实例相同,但按不同的奖励类别列出)
- 属于奖励类别实例 B 的奖励实例 F
- 属于奖励类别实例 B 的奖励实例 R
- 属于奖励类别实例 B 的奖励实例 Z
工作实例 B
- 属于奖励类别实例 A 的奖励实例 B
- 属于奖励类别实例 A 的奖励实例 A
本质上,我想按奖项类别列出所有作品。我可以让它部分工作,但我的解决方案是肮脏和粗暴的。我想知道是否有更好的方法。我考虑使用 ManyToMany 和 through 属性,但我不确定我是否正确使用它。