Django DeleteView SuccessMessageMixin -- как передать данные в сообщение?

Я использую SuccessMessageMixin на CreateView и DeleteView.

В CreateView я могу отправить название книги в сообщение success_message, например, так:

    success_message = "%(title)s added successfully"

Который правильно показывает "Great Expectations added successfully" на url успеха.

Но в DeleteView я не могу получить доступ к заголовку. Я могу отправить общее сообщение "книга удалена", но не могу отправить сообщение "книга "Большие надежды" была удалена".

Есть ли способ передать информацию о том, что удаляется, в success_message?

Причина, по которой это не работает, заключается в том, что DeleteView работает с пустой формой, то есть без очищенных данных.

Вы можете переопределить get_success_message и работать с:

from django.contrib.messages.views import SuccessMessageMixin
from django.views.generic import DeleteView


class MyDeleteView(SuccessMessageMixin, DeleteView):
    model = Book

    def get_success_message(self, cleaned_data):
        return f'{self.object.title} has been deleted'
Вернуться на верх