запрос массива в Django - PullRequest
       7

запрос массива в Django

1 голос
/ 14 августа 2010
      idarr = [1,2,3,4,5]
      for i in  range(len(idarr)):
          upload.objects.filter(idarr[i])

Не можем мы передать idarr одним выстрелом на запрос

Ответы [ 2 ]

7 голосов
/ 14 августа 2010

Так много ошибок в стольких строках ...

  1. В Python никогда не перебирайте range(len(whatever)).Просто сделайте for i in whatever.

  2. Предполагая, что upload является моделью Django, вы не можете просто передать значение filter - вам нужно сказать, что вы фильтруете,Предположительно это первичный ключ, поэтому вы хотите .filter(pk=i).

  3. Если вы хотите отфильтровать любое из значений в списке, используйте __in: .filter(pk__in=idarr).

7 голосов
/ 14 августа 2010

Я предполагаю, что вы пытаетесь отфильтровать все экземпляры Upload, id которых есть в списке idarr Если это так, то вы можете сделать это следующим образом:

Upload.objects.filter(id__in = idarr)

Прочтите документацию для более подробной информации.

...