Как контролировать удаление в django_admin

Я хотел бы контролировать, когда можно удалить элементы в админке Django. во-первых, я попытался переопределить метод удаления моделей, чтобы вызвать ошибку целостности. это работает, но это исключение не отлавливается администратором и не показывает приятное сообщение. на самом деле, если вы работаете в производственном режиме, все, что он говорит, это "возникла проблема".

во-вторых, я положил форму и чистый метод. это тоже не работает. метод clean запускается всякий раз, когда вы изменяете элемент. не только когда удаляешь.

так как же иметь возможность контролировать удаление элемента в django admin (и иметь хорошее сообщение о том, почему вы не можете его удалить)?

1 ответ

Нет необходимости, чтобы показать сообщение, кнопки удаления не будут отображаться, пока вы используете это:

class MyAdmin(ModelAdmin):

    ...
    def has_delete_permission(self, request, obj=None):
        return False
Другие вопросы по тегам