【问题标题】:How to get reverse relationship in Django's ORM如何在 Django 的 ORM 中获得反向关系
【发布时间】:2014-01-21 21:42:08
【问题描述】:

我通常倾向于避免给出这样明确的例子,但在这种情况下这是必要的。

我有 5 个实体:

  1. 学生
  2. 学生组
  3. 课程组
  4. 课程(不相关——仅出于完整性目的)

StudentGroup 代表属于某个小组的学生。 CourseGroup 是整个小组都在参加的课程。

我想让所有属于Group 并参与特定Course 的学生。到目前为止,我只设法让所有学生都进入一个小组:

students = Student.objects.filter(studentgroup=1)

不知道为什么我可以说studentgroup=1,但很幸运。但是没有studentgroupcourse=1 :) 有什么帮助吗?

编辑:我的模型是:http://pastebin.com/07z1iEcw

【问题讨论】:

  • 作为参考,我看过这个:stackoverflow.com/questions/5212463/… 但它看起来不适用于我。也许我错了。
  • 请发布您的模型定义,如果不可能,至少发布您列表中每个模型之间的关系类型(外键、多对多)
  • @dm03514 更新了我的模型的问题。我相信我根据我的需要调整了您的答案:studentgroup__group__coursegroup__course。不知道你可以通过两个下划线来处理关系。会接受你的答案。谢谢。

标签: django django-orm


【解决方案1】:

假设CourseGroup 有一个指向StudentGroup 的外键和一个指向Course 的外键

Student.objects.filter(studentgroup=1, studentgroup__coursegroup__course=your_course)

【讨论】:

    猜你喜欢
    • 2020-02-12
    • 1970-01-01
    • 2014-12-18
    • 2019-06-15
    • 2018-07-05
    • 2021-11-16
    • 1970-01-01
    • 2014-03-14
    • 2014-05-27
    相关资源
    最近更新 更多