2
使用django查詢集時。有可能使用in
操作或其他方法來維護對象之間的一對一映射。查詢中的Django
比如我想:
id_list = [12,2,33]
Foo.objects.filter(id__in=id_list)
爲了維持秩序,並返回
None
當IDS之一是缺少,如:
ret = [Foo(id=12), None, Foo(id=33)]
其中
Foo(id=2)
不存在。
目前,我唯一要做的就是創建一箇中級字典。 例如:
map = {o.id: o for o in Foo.objects.filter(id__in=id_list)}
ret = [map.get(id, None) for id in id_list]
你也可以添加一個ModelMethod使得像'RET = [Foo.objects.get_or_none(ID = ID),用於ID_LIST ID]'會的工作。 – Jkdc