как отфильтровать модель django с помощью IN для списка, который не содержит ничего

#django #django-models

#django #django-модели

Вопрос:

У меня есть представление, основанное на модели, в которой пользователь может фильтровать модель элементов на основе поля категорий, используя:

 Items.objects.filter(categories__in=[‘A’, ’B’, ‘C’])
  

Однако в некоторых случаях поле categories равно NULL, и пользователь может захотеть просмотреть список категорий NULL и A. Итак, я попытался:

 Items.objects.filter(categories__in=[None, ‘A’])
  

Но это не работает, и мой результат отображается только для A, B и C

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

Но принцип тот же, как включить None в список IN operation .

Ответ №1:

 Items.objects.filter(Q(categories__in=[‘A’, ’B’, ‘C’]) | Q(categories__isnull=True))