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'