Добрый день.
Хочу после нажатия на кнопку удалить в админке, сделать кое-какую "проверку", если проверка верна то запись удаляем, если нет то возвращаем на ту же страницу с ошибкой (на подобии ValidationError), где выводится сообщение аля "запись не может быть удалена потому что ...".
В
admin.ModelAdmin
есть метод has_delete_permission, пока использую его, он отвечает за отображение кнопки "удалить":
def has_delete_permission(self, request, obj=None):
if obj:
a = 1
if a:
return True
return False
Но это не совсем то что мне надо, я хочу чтоб кнопка была всегда, а разрешение на удаление или нет было после ее нажатия. Валидация формы работает именно по такому принципу.
Можно и так сделать:
def delete_model(self, request, obj):
if True:
obj.delete()
else:
raise Exception
Но, таким образом от просто выкидывает страницу ошибки, а не страницу редактирования записи с ошибкой, к тому же delete_model как и save нельзя использовать для блокирования удаления объекта, только для добавления действий до и после удаления.
Спасибо за участие!