Django获取多个ID的对象
我有一组ID,想要获取这些ID对应的所有对象。现在我的方法可以实现这个功能,但它在一个循环里不停地对数据库发起很多次get
查询,这样会对数据库造成很大的压力。
objects = [SomeModel.objects.get(id=id_) for id_ in id_set]
有没有更有效的方法来处理这个问题呢?
1 个回答
28
有一个叫做 __in 的字段查找方法(这里有相关文档),你可以用它来获取所有某个字段的值在一组值中的对象。
objects = SomeModel.objects.filter(id__in=id_set)
这个方法适用于很多不同类型的字段(比如字符字段 CharFields),不仅仅是 ID 字段。