我有一组ID,我想要检索所有对象。我当前的解决方案是有效的,但是它会在循环中用一堆get
查询来破坏数据库。
objects = [SomeModel.objects.get(id=id_) for id_ in id_set]
有没有更有效的方法来解决这个问题?
答案 0 :(得分:7)
可以使用__in(documentation here)字段查找来获取某个字段与值列表中的一个匹配的所有对象
objects = SomeModel.objects.filter(id__in=id_set)
对于许多不同的字段类型(例如CharFields)工作方式相同,而不仅仅是id字段。