我有一个DeleteView:

class LectureDelete(SuccessMessageMixin, DeleteView):
model = Lecture
success_message = "Die Veranstaltung wurde gelöscht"
success_url = '/'

def get_object(self):
    qs = super(LectureDelete, self).get_object()
    if self.request.user.has_perm('edit_lecture', qs):
        return qs
    else:
        raise exceptions.PermissionDenied

在success_url链接到的模板中,我有以下代码,可以很好地处理其他消息:

{% if messages %}
        {% for message in messages %}
        <p class="alert alert-dismissable {% if message.tags %}alert-{{ message.tags }}"{% endif %}>
            <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
            {{ message }}
        </p>
        {% endfor %}
    {% endif %}

但信息没有显示出来.我错过什么了吗?我在干什么?谢谢

推荐答案

我认为《Django问题追踪器》中的this issue应该能回答你的问题.

SuccessMessageMixin钩到DeleteView上不存在的form_valid,以将其消息推送给用户.

它还提供了一种适用于我的替代方法:

from django.views.generic.edit import DeleteView
from django.core.urlresolvers import reverse_lazy
from django.contrib import messages
from .models import Thing

class ThingDelete(DeleteView):
    model = Thing
    success_url = reverse_lazy('list')
    success_message = "Thing was deleted successfully."

    def delete(self, request, *args, **kwargs):
        messages.success(self.request, self.success_message)
        return super(ThingDelete, self).delete(request, *args, **kwargs)

SuccessMessageMixin没有在删除视图中使用(但我确实在创建和更新视图中使用).

Django相关问答推荐

管理器不能通过对象上的对象实例访问.保存()

Django没有显示变量

有没有办法在Django中按需/点击仅获取和序列化一部分数据以提高性能?

django.template.response.ContentNotRenderedError: 必须渲染响应内容才能迭代

在 Django 中按月份和年份对帖子进行分类

在 Django 4.1 中提交表单之前显示数据

如果一个应用程序有多个具有相同字段的模型,那么保持 DRY 的最佳实践是什么?

Django ORM:获取每个类别的月平均价格

删除所有实例后,Django 模型实例主键不会重置为 1

TestCase 类中的 setUpClass、setUpTestData 和 setUp 有什么区别?

如何在 django 中生成 url

Django Admin:如何在同一视图中显示来自两个不同模型的字段?

UnicodeEncodeError:ascii编解码器无法编码字符

Python - 覆盖 __init__ 的最干净方法,其中在 super() 调用之后必须使用可选的 kwarg?

1 个 django 应用程序中约有 20 个模型

如何过滤(或替换)在 UTF-8 中占用超过 3 个字节的 unicode 字符?

如何 suppress Django 中的弃用警告?

为整个结果集向 Django Rest Framework 结果添加额外数据

关闭 Django Rest Framework ModelViewSet 的自动分页

Python Django 的多线程