【发布时间】:2012-09-06 22:57:59
【问题描述】:
我遇到了困扰我的 Django ORM 问题。我有一组由外键链接的模型,但要求有点奇怪。我需要按它们的关系列出项目。这很难解释,所以我试图在下面描述这一点:
工作
- ManyToMany(奖)
奖项
- 外键(AwardCategory)
奖项类别
我需要列出工作项目,以便按奖励类别列出。期望的输出是:
工作实例 A
- 属于奖励类别实例 A 的奖励实例 A
- 属于奖励类别实例 A 的奖励实例 C
- 属于奖励类别实例 A 的奖励实例 G
工作实例A(与上述实例相同,但按不同的award__category列出)
- 属于奖励类别实例 B 的奖励实例 F
- 属于奖励类别实例 B 的奖励实例 R
- 属于奖励类别实例 B 的奖励实例 Z
工作实例 B
- 属于奖励类别实例 A 的奖励实例 B
- 属于奖励类别实例 A 的奖励实例 A
基本上我想按奖项类别列出所有作品。我可以让它部分工作,但我的解决方案是肮脏和粗暴的。我想知道是否有更好的方法。我考虑过使用 ManyToMany 和 through 属性,但我不确定我是否正确使用它。
【问题讨论】:
-
Award.category 指向“Category”,那么“AwardCategory”是什么?
-
您当前期望的输出表明一个 Work 实例可以有多个奖项,但您的模型只显示一个奖项。
标签: django orm django-models django-orm