查询django中的数组

时间:2010-08-14 08:45:38

标签: python django django-models django-views

      idarr = [1,2,3,4,5]
      for i in  range(len(idarr)):
          upload.objects.filter(idarr[i])

我们不能一次性将idarr传递给查询

2 个答案:

答案 0 :(得分:7)

我假设您要尝试过滤Upload列表ididarr的所有实例。如果是这种情况,那么你可以这样做:

Upload.objects.filter(id__in = idarr)

阅读documentation了解更多详情。

答案 1 :(得分:7)

这么几行太错了......

  1. 在Python中,永远不要遍历range(len(whatever))。只需for i in whatever

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

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