我有一个删除视图:
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">×</button>
{{ message }}
</p>
{% endfor %}
{% endif %}
但该消息未显示。我错过了什么吗?我究竟做错了什么?谢谢!
I think 这个问题 https://code.djangoproject.com/ticket/21926Django 问题跟踪器中应该可以回答您的问题。
SuccessMessageMixin
挂钩到form_valid
不存在于DeleteView
将其消息推送给用户。
它还提供了一种适合我的替代方法:
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 https://code.djangoproject.com/ticket/21926了解更多信息)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)