【发布时间】:2018-07-07 14:54:46
【问题描述】:
如果我有一个这样的查询集 qs1:
<QuerySet [{u'name': u'John', u'birthdate': u'1980-01-01'},
{u'name': u'Larry', u'birthdate': u'1976-12-28'},
.....']}
我需要使用 qs1 中与键 'name' 关联的所有值来查询另一个模型并获得 qs2,如下所示:
<QuerySet [{u'student_name': u'John', u'grade': u'A'},
{u'student_name': u'Larry', u'grade': u'B'},
.....']}
在这之后,我必须将 qs1 和 qs2 组合起来,所以 final_qs 是这样的:
[{u'name': u'John',u'birthdate': u'1980-01-01', u'grade': u'A'},
{u'student_name': u'Larry', u'birthdate': u'1976-12-28', u'grade': u'B'},
.....']}
我将如何实现这一目标? 我有这样的代码:
qs1 = Person.objects.values('name', 'birthdate')
for t in qs1:
qs2 = Grades.objects.filter(student_name=t['name'])
.values('student_name', 'grade')
我的 qs1 看起来不错。但是,我的 qs2 变成了这样:
<QuerySet [{u'student_name': u'John', u'grade': u'A'}]>
<QuerySet [{u'student_name': u'Larry', u'grade': u'B'}]>
由于 qs2,我无法使用 zip(qs1, qs2) 以我想要的方式构造 final_qs。
【问题讨论】:
标签: python django django-queryset