未显示DeleteView中的success_message [英] success_message in DeleteView not shown

查看:70
本文介绍了未显示DeleteView中的success_message的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个DeleteView:

I have a 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

在我的成功链接链接到的模板中,我有以下代码,可以与其他消息配合使用:

And in my template to which the success_url links, I have the following code, which works fine with other messages:

{% 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 %}

但是消息没有显示。我想念什么吗?我在做什么?谢谢!

But the message is not shown. Am I missing something? What am I doing worng? Thanks!

推荐答案

我认为此问题在Django问题跟踪器中应该可以回答您的问题。

I think this issue in the Django issue tracker should answer your question.


SuccessMessageMixin 挂钩到 form_valid ,它不在 DeleteView 上,以将其消息推送给用户。 / p>

SuccessMessageMixin hooks to form_valid which is not present on DeleteView to push its message to the user.

它也提供了另一种对我有用的方法:

It also gives an alternative way which works for me:

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中会有所改善(有关更多信息,请参见 issue

SuccessMessageMixin was not used in the delete-view (but I do use it for the Create and Update views). Hopefully this will be improved in later versions of Django (see issue for more info).

这篇关于未显示DeleteView中的success_message的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆