[英]Django return list of objects and list of ids from the same queryset
我想知道是否可以 select 来自同一查询集的不同值。 我有一个查询集如下
links = Model.objects.filter(some_filters)
ect.
return links.values('parent_id', 'child_id', 'type', 'date')
我想做的是既返回上面的列表,又返回一个不同的 child_id 列表,而不必创建新的查询。 例如,如果以上返回:
[(1, 2, 'child', 'some_date'), (2, 3, 'child', 'some_date')]
我希望它返回
[2, 3], [(1, 2, 'child', 'some_date'), (2, 3, 'child', 'some_date')]
如果不创建新的查询集,这可能吗?
将第一个查询集分配给变量后,您可以从中获取不同的查询集,而无需访问数据库:
links = Model.objects.filter(some_filters)
q1 = links.values_list('child_id')
q2 = links.values_list('parent_id', 'child_id', 'type', 'date')
return q1, q2
您可以遍历结果以仅提取那些子 ID 并在每次迭代中检查该 ID 是否已经存在
child_ids = []
for record in results:
if (record[1] not in child_ids):
child_ids.append(record[1])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.