2016-07-18 9 views
0

Я пытаюсь фильтровать с помощью не равна в фильтре объекта Джанго, как следующее:Сочетание равенства и неравенства в Django фильтр

peculiarties = MetricAssociation.objects.filter(metric=metric, specifics != null) 

Это не работает причина =. Тем не менее, я провел много исследований по этому вопросу с использованием exclude() и т. Д., Но, похоже, не может найти ничего, что допускает как истинную, так и ложную фильтрацию в одном Django Query.

Любые предложения о том, как делать И True (метрика = метрика) и False (specificics! = Null)?

ответ

1

Вы можете использовать Q objects для такого сценария,

from django.db.models import Q 
peculiarties = MetricAssociation.objects.filter(Q(metric=metric) & ~Q(specifics=None)) 
1

Не нужны объекты Q. Он встроен в Django querysets.

peculiarties = MetricAssociation.objects.filter(metric=metric, specifics__isnull=False) 

Обратите внимание, что есть двойной знак подчеркивания.

0

Или комбинация фильтра и исключить.

MetricAssociation.objects.filter(metric=metric).exclude(specifics=None) 

 Смежные вопросы

  • Нет связанных вопросов^_^