Это мой собственный менеджер и базовая модель. Я наследую эту базовую модель другим моделям, чтобы мне не приходилось снова и снова писать общие поля.
Код: Выделить всё
class BaseManager(models.Manager):
def get_or_none(self, *args, **kwargs):
try:
return self.get(*args, **kwargs)
except self.model.DoesNotExist:
return None
class BaseModel(models.Model):
id = models.UUIDField(
primary_key=True, default=uuid.uuid4, verbose_name="ID", editable=False
)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
objects = BaseManager() # Set the custom manager
class Meta:
abstract = True
Код: Выделить всё
class MyModel(BaseModel):
category = models.CharField(max_length=10)
Код: Выделить всё
my_object = MyModel.objects.get_or_none(
category="...",
)
Код: Выделить всё
my_object: BaseModel | None = MyModel.objects. get_or_none(...
Код: Выделить всё
my_object: MyModel | None = MyModel.objects. get_or_none(...
Пожалуйста, помогите мне.
Спасибо
Подробнее здесь: https://stackoverflow.com/questions/793 ... tom-method