未显示DeleteView中的success_message [英] success_message in DeleteView not shown
问题描述
我有一个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">×</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 toform_valid
which is not present onDeleteView
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屋!