Django获取许多ID的对象

时间:2014-04-15 23:01:58

标签: python django django-queryset

我有一组ID,我想要检索所有对象。我当前的解决方案是有效的,但是它会在循环中用一堆get查询来破坏数据库。

objects = [SomeModel.objects.get(id=id_) for id_ in id_set]

有没有更有效的方法来解决这个问题?

1 个答案:

答案 0 :(得分:7)

可以使用__in(documentation here)字段查找来获取某个字段与值列表中的一个匹配的所有对象

objects = SomeModel.objects.filter(id__in=id_set)

对于许多不同的字段类型(例如CharFields)工作方式相同,而不仅仅是id字段。