Фильтр по идентификатору для нескольких данных в Django - PullRequest
4 голосов
/ 22 марта 2012
id_tuple= (1,3,4,5,7,9)
students =Students.objects.filter(id in id_tuple)

for s in students :
s.name='_new_name_'

Этот код дает ошибку!Как я могу решить это ??основываясь на приведенном выше кортеже, я хочу, чтобы все ученики получили!

Ответы [ 3 ]

10 голосов
/ 22 марта 2012

Как сказал stepnak для выполнения запроса, правильный синтаксис: filter(id__in=id_tuple)

Документация Django была бы отличным ресурсом для получения этой информации.https://docs.djangoproject.com/en/dev/ref/models/querysets/#in

2 голосов
/ 22 марта 2012

Вы можете использовать поиск поля IN, как подсказывает @stepank.

Немного больше объяснений: Django ORM использует специальный синтаксис для перевода кода Python в операторы SQL.И просто передача значения bool (если определено id) в filter не является допустимым синтаксисом.

Если вы новичок в Django, вы можете начать с здесь ,Вы также можете обратиться к полному справочнику .Перед обращением обращайтесь к документации, это хорошая практика.:)

0 голосов
/ 29 января 2019

student = Students.objects.filter (id__in = id_tuple)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...