【发布时间】:2022-11-25 01:32:07
【问题描述】:
我有两个模型:
class Student(models.Model):
first_name = models.CharField()
last_name = models.CharField()
class Group(models.Model):
name = models.CharField()
students = models.ManyToManyField(Student)
一些数据(first_name 和last_name 串联):
Group #1 | Blak Coleman
Group #1 | Miguel Scott
Group #2 | Jordan Barnes
Group #2 | Jordan Gustman
Group #2 | Jekson Barnes
Group #3 | Jordan Smith
如您所见,有三个学生的名字是Jordan。所以我需要返回 students 查询集中只有学生姓名 Jordan 的组。
我试过这个:
groups = Group.objects.filter(students__first_name='Jordan')
但是 group.first().students.all() 包含所有学生,而不仅仅是 Jordan。预期结果:
Group #2 | Jordan Barnes
Group #2 | Jordan Gustman
Group #3 | Jordan Smith
我怎么能这样做?
【问题讨论】:
-
什么意思但是 group.first().students.all() 包含所有学生,而不仅仅是乔丹?
-
结果集名称是
groups- 复数。group.first().students.all()- 此代码忽略您的结果集。它指的是group而不是groups。显示与问题相关的完整代码。 -
你能回答我上面的评论吗?
-
@SunderamDubey,我发布了我找到的解决方案stackoverflow.com/a/74561823/9112151
标签: django django-orm