Как исключить пустые значения при запросе конечной точки DRF [Django]
Похож на фильтр исключения, который выглядит следующим образом:
MyObject.objects.exclude(my_field="")
То есть что-то вроде этого:
/api/object?my_field__isempty=False
Я знаю, что могу изменить представление, чтобы исключить значение из набора запросов:
def get_queryset(self):
return Client.objects.exclude(my_field="")
Если я правильно вас понял, Если вам нужно исключить нулевые значения и пустые строки
ModelName.objects.exclude(field_name__isnull=True).exclude(field_name__exact='')
Или вы можете использовать один из них, этот равен
NOT field_name='' AND field_name IS NOT NULL
@ Ответ Хашема хорош, но вы также могли бы использовать Q утверждения
from django.db.models import Q
# Q allows for complex queries with:
# & (AND)
# | (OR)
# ^ (XOR)
# Exclude method
ModelName.objects.exclude(Q(field_name__isnull=True) | Q(field_name__exact=''))
# Filter Method with ~ (NOT)
ModelName.objects.filter(~Q(field_name__isnull=True) & ~Q(field_name__exact=''))
Просто предлагаю еще один вариант, и знание Q-выражений действительно полезно
Документы: https://docs.djangoproject.com/en/4.1/topics/db/queries/#complex-lookups-with-q