查询django中的数组

Hul*_*ulk 1 python django django-models django-views

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

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

Man*_*dan 7

我假设你正试图过滤所有的实例Upload,其id在列表中idarr.如果是这种情况那么你可以像这样:

Upload.objects.filter(id__in = idarr)
Run Code Online (Sandbox Code Playgroud)

阅读文档以获取更多详细信息.


Dan*_*man 7

如此少的线条错误......

  1. 在Python中,永远不要循环range(len(whatever)).做吧for i in whatever.

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

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