@NyxDeveloper

Как отфильтровать queryset по multi select?

Добавляю в форму поиска в приложении возможность выбора нескольких параметров, решил использовать select multiple, но не знаю как сделать фильтрацию с несколькими значениями. Подскажите какое-нибудь лаконичное решение пожалуйста. Спасибо!
Можно ли вообще подвязать к django какой-нибудь крутой виджет мультиселекта и с помощью QuerySet.filter() фильтровать список объектов?
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ответы на вопрос 1
Я делал немного криво, но другого способа не нашел

class TechniqueGroup(models.Model):
    name = models.CharField(max_length=250, verbose_name='Тематика', blank=True, null=True, unique=True)
    technique = models.ManyToManyField(Technique, verbose_name='техника', related_name='group', blank=True, )

        def grouplist(self):
        group = []
        for tech in self.technique.all():
            group.append(tech.id)
        return group

    def __str__(self):
        return self.name


а потом уже можно было в фильтре делать
QuerySet.filter(fieldname__id__in = techniquegroup.grouplist())

если найдется код более лаконичный, то тоже буду рад.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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