def is_owner_or_staff(user, obj, owner_field: str = 'author_id') -> bool: """Редактировать может администратор (is_staff) или владелец объекта""" return user.is_staff or getattr(obj, owner_field) == user.pk def is_owner(user, obj, owner_field: str = 'author_id') -> bool: """Удалять с портала может только владелец (staff — через админку)""" return getattr(obj, owner_field) == user.pk