2010-08-14 66 views
1
 idarr = [1,2,3,4,5] 
     for i in range(len(idarr)): 
      upload.objects.filter(idarr[i]) 

广东话,我们在一个镜头传递idarr到查询查询阵列在Django

回答

7

我假设你想在列表中idarr过滤的Uploadid是所有实例。如果是这样的话,那么你可以去了解它是这样的:

Upload.objects.filter(id__in = idarr) 

阅读documentation了解更多详情。

+0

@simplyharsh:谢谢你添加缺失的动词。 – 2010-08-14 09:19:30

7

所以在这么几行太多的错误...

  1. 在Python中,从来没有经历过range(len(whatever))循环。只要做for i in whatever

  2. 假设upload是一个Django模型,您不能只传递一个值到filter - 您需要说明您要过滤的内容。推测这是主键,所以你想要.filter(pk=i)

  3. 如果要针对列表中的任何值进行过滤,请使用__in.filter(pk__in=idarr)