Django DeleteView SuccessMessageMixin --如何向消息传递数据?

uinbv5nw  于 2022-12-14  发布在  Go
关注(0)|答案(1)|浏览(97)

我正在创建视图删除视图上使用成功消息混合 * a。
CreateView**中,我可以将书名发送到success_message,如下所示:

success_message = "%(title)s added successfully"

它会在成功网址上正确地显示“远大前程添加成功”。
但在DeleteView中,我无法访问书名,我可以发送一条通用消息说“图书已删除”,但我无法发送一条消息说“远大前程已被删除”。
是否有方法可以将有关正在删除的内容的信息传递到success_message

yquaqz18

yquaqz181#

这不起作用的原因是因为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'

相关问题