idarr = [1,2,3,4,5]
for i in range(len(idarr)):
upload.objects.filter(idarr[i])
我们不能一次性将idarr传递给查询
答案 0 :(得分:7)
我假设您要尝试过滤Upload
列表id
中idarr
的所有实例。如果是这种情况,那么你可以这样做:
Upload.objects.filter(id__in = idarr)
阅读documentation了解更多详情。
答案 1 :(得分:7)
这么几行太错了......
在Python中,永远不要遍历range(len(whatever))
。只需for i in whatever
。
假设upload
是Django模型,您不能只将值传递给filter
- 您需要说明您要过滤的内容。据推测它是主键,所以你需要.filter(pk=i)
。
如果您要根据列表中的任何值进行过滤,请使用__in
:.filter(pk__in=idarr)
。