繁体   English   中英

Django 从同一查询集中返回对象列表和 id 列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM