【发布时间】:2017-10-08 03:41:32
【问题描述】:
我具有以下功能,可对 ListView 中的选定行进行批量操作。 我正在显示成功和错误的消息。
def archive_stores(view, queryset):
if queryset.exists():
queryset.update(archive=True)
success_message = messages.success(view.request, 'Archived successfully.')
return HttpResponseRedirect(reverse('stores_list', success_message))
else: #The message is not shown when queryset of empty.
error_message = messages.error(view.request, 'No success!.')
return HttpResponseRedirect(reverse_lazy('stores_list', error_message))
成功消息正在正确显示。但错误消息永远不会出现。请指导我可能是什么原因?
下面是ListView:
@method_decorator(login_required, name='dispatch')
class StoresListView(ActionViewMixin,ListFilteredMixin,ListView):
template_name = 'stores_listing.html'
model = Store
filter_set = StoreFilter
actions = [archive_stores, unarchive_stores, delete_stores, export_stores,]
paginate_by = 25
以下是消息模板:
{% for message in messages %}
<div class="alert {{ message.tags }} alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
{{ message | safe }}
</div>
{% endfor %}
谢谢。
【问题讨论】:
-
你能显示视图吗?
-
用视图更新了问题。请注意我正在使用:django_actions 包,用于在 ListView 中生成类似管理员的操作。
-
对不起,我的意思是,模板 *
-
您希望我发布模板的哪一部分,仅用于显示消息或所有内容的模板?
-
我通过在 django_actions 包中进行更改来修复它。我在包的 view.py 中进行了更改。