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)