首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于另一个表获取Django查询列表

基于另一个表获取Django查询列表
EN

Stack Overflow用户
提问于 2022-04-20 06:26:55
回答 2查看 36关注 0票数 0

我有如下模型:

群模型

代码语言:javascript
复制
class Group(model.Model):
    name = models.CharField(max_length=100, null=True, blank=True)

GroupMember模型

代码语言:javascript
复制
class GroupMember(model.Model):
    group = models.ForeignKey(Group, on_delete=models.CASCADE, related_name='group_member_group')
    member = models.ForeignKey(User, on_delete=models.CASCADE, related_name='group_member_user')

课程模型

代码语言:javascript
复制
class Course(model.Model):
    name = models.CharField(max_length=100)

GroupCourse模型

代码语言:javascript
复制
class GroupCourse(model.Model):
    group = models.ForeignKey(Group, on_delete=models.CASCADE, related_name='course_group')
    course = models.ForeignKey(Course, on_delete=models.CASCADE, related_name='group_course')

CourseStaff模型

代码语言:javascript
复制
class CourseStaff(model.Model):
    course = models.ForeignKey(Course, on_delete=models.CASCADE, related_name='course_staff_course')
    staff = models.ForeignKey(User, on_delete=models.CASCADE, related_name='course_staff_user')

我想要的是获取特定课程的所有GroupMember模型中不存在的CourseStaff

例如,--在Group A中共有5个成员

  • 成员1
  • 成员2
  • 成员3
  • 成员4

H 129成员5<代码>H 230<代码>F 231

我总共有2门Group A课程

  • 课程1
  • 课程2

Course 1有两个成员:

  • 成员1
  • 成员2

Course 2有两个成员:

  • 成员2
  • 成员3

我想要的是在查询Member 3-5时从GroupMember获得Course 1

还可以在查询Member 1,4, 5时从GroupMember获取Course 2

我怎么能这么做?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2022-04-20 07:07:20

“我想要的是获得特定课程中不存在于GroupMembers模型中的所有CourseStaff。”

你的模型之间的联系很弱。您希望排除GroupMembers,它不是CourseStaff,但在GroupMembers中,与CourseStaff没有任何关系。您可以在CourseStaff的课程字段上进行操作。但你的课程模式和任何模型都没有关系。您需要在课程模型下添加一个字段来连接一个关系。

票数 0
EN

Stack Overflow用户

发布于 2022-04-20 10:33:31

我就是这么做的。它可能不完美,但它有效。

代码语言:javascript
复制
course_staffs = CourseStaff.objects.filter(course_id=course_id).values_list('staff_id')
members = User.objects.filter(~Q(id__in=course_staffs), group_member_user__group_id=group_id)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71935058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档