【问题标题】:Django's SuccessMessageMixin not working with DeleteViewDjango 的 SuccessMessageMixin 不能与 DeleteView 一起使用
【发布时间】:2018-02-13 22:52:41
【问题描述】:

https://docs.djangoproject.com/en/2.0/ref/contrib/messages/#adding-messages-in-class-based-views 之后,我正在尝试向DeleteView 添加一条成功消息:

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


class SessionDelete(SuccessMessageMixin, DeleteView):
    model = Session
    success_url = reverse_lazy('dashboard:sessions')
    success_message = "Session %(id)s (%(session_type)s) was deleted successfully"

但是,我注意到这在 Django 1.11.9 中不起作用。我找到了这个拉取请求,https://github.com/django/django/pull/5992,但它似乎由于不活动而被关闭。我是否正确理解成功消息仍然无法与DeleteViews 一起正常工作?

【问题讨论】:

标签: python django


【解决方案1】:
  1. 导入from django.contrib import messages

  2. 将其用作您的视图或将其转换为 mixin。

class SessionDelete(DeleteView):
    model = Session
    success_url = reverse_lazy('dashboard:sessions')
    success_message = "Session %(id)s (%(session_type)s) was deleted successfully"
    
    def delete(self, request, *args, **kwargs):
        messages.success(self.request, self.success_message, 'danger')

        return super(SessionDelete, self).delete(request, *args, **kwargs)
  1. 您不需要 SuccessMessageMixin,它现在工作正常!

【讨论】:

    猜你喜欢
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 2022-08-22
    • 2019-12-02
    • 2012-07-14
    • 2011-12-22
    • 2022-08-19
    相关资源
    最近更新 更多