# DRF Rack # Библиотека классов расширений для Django REST Framework # # Автор: Николай В. Анохин # Все права защищены. Лицензия: MIT """ Описание класса DeletedAtMixin """ from django.db import models from django.utils.translation import gettext_lazy as _ from net.xeaf.rack.utils import DateUtils class DeletedAtMixin(models.Model): """ Добавляет к модели свойство даты и времени удаления """ deleted_at = models.DateTimeField( null=True, blank=True, editable=True, verbose_name=_("rack.mixin.deleted_at"), ) """ Дата и время удаления """ def soft_delete(self, save: bool = True) -> None: """ Помечает запись на удаление :param save: Признак необходимости сохранения """ self.deleted_at = DateUtils.now() if save: self.save() def undelete(self, save: bool = True) -> None: """ Снимает пометку удаленной записи :param save: Признак необходимости сохранения """ self.deleted_at = None if save: self.save() def is_deleted(self) -> bool: """ Возвращает признак удаленной записи :return: True, если запись была удалена """ return self.deleted_at is not None class Meta: """ Конфигурация класса """ abstract = True