Django модель отрицания кверисетов

Я использую Django 3.2.

Я написал менеджер моделей следующим образом:

from django.db.models import QuerySet

class FooQueryset(QuerySet):
    def empty_ones(self):
        return self.filter(some_field__isnull=True)

    def nonempty_ones(self):
        return self.exclude(some_field__isnull=True)

Хотя этот пример тривиален, я хочу сохранить свой код DRY, моя логика сложнее, и я хочу иметь возможность вернуть отрицание логики, определенной в функции запроса.

Как я могу элегантно сделать это, используя выражения Q?

Вернуться на верх