我有一个id[1,2,3,4,5,6,7,8,9,10]
现在我想用上面的id列表查询一个模型。我就是这样做的。

ModelA.objects.filter(id__in=ids)

这将返回与给定id列表匹配的ModelA对象。现在考虑ids[2,3,5]不存在。我可以得到与输入列表长度相同的查询集,包括所有未找到的对象吗。??
例如:-
如果未找到[2,3,5],则应返回
[1,None,None,4,None,6,7,8,9,10]

我怎样才能做到?

最佳答案

你可以做一些像。。。

ids = [1,2,3,4,5,6,7,8,9,10]
results = ModelA.objects.filter(id__in=ids)
result_ids = [result.id for result in results]
return [id if id in result_ids else None for id in ids]

关于python - Django-如果在给定查询列表的情况下找不到记录,则不返回任何对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43127486/

10-16 11:03