@Bjornie
Изучаю Python

Как получить повторы в queryset?

Сразу приведу пример. У меня есть список из десяти id (1,1,2,2,3,3,4,4,4,5). Мне нужно для каждого айди проверить определенный флажок (отмечен или неотмечен) в модели и вывести результат.

Что я делаю:
q = Model.objects.filter(id__in=[1,1,2,2,3,3,4,4,4,5])
no = q.filter(license=False),
yes = q.filter(license=True)

В результате получаю queryset состоящий из 5 объектов, а не десяти. Понимаю, это логично, но мне нужно получить результат из 10 объектов, независимо от уникальности идентификаторов. Подскажите пожалуйста как это сделать?
  • Вопрос задан
  • 183 просмотра
Решения вопроса 1
fox_12
@fox_12 Куратор тега Django
Расставляю биты, управляю заряженными частицами
Ну тогда как-то так:
q = [Model.objects.get(pk=x) for x in [1,1,2,2,3,3,4,4,4,5]]

no = list(filter(lambda x: x.license == False, q))
yes = list(filter(lambda x: x.license == True, q))

Неоптимально, но вашу задачу решает
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы