production-taskbar / backend / tgbot / utils / models.py
models.py
Raw
from typing import Any, Dict

from django.core.exceptions import ObjectDoesNotExist
from django.db.models import Manager, QuerySet


class GetOrNoneManager(Manager[Any]):
    """returns none if object doesn't exist else model instance"""

    def get_or_none(self, **kwargs: Dict[str, Any]) -> Any:
        try:
            return self.get(**kwargs)
        except ObjectDoesNotExist:
            return None


class AdminUserManager(Manager[Any]):

    def get_queryset(self) -> QuerySet[Any]:
        return super().get_queryset().filter(is_admin=True)