在我的更改列表管理页面上,我制作了一个自定义过滤器。 我希望能够在选择错误时向用户发送错误/警告消息。 (我知道默认情况下过滤器选择永远不会错,但我已将选择下拉列表转换为文本输入,因此某些值可能无效)
知道如何从过滤器发送错误消息吗? 这是我试过的:
#filter.py
class MyFilter(SimpleListFilter):
title = ugettext_lazy('Score')
parameter_name = 'Score'
def lookups(self, request, model_admin):
return [('0.9', 's>=0.9')]
def queryset(self, request, queryset):
try:
something
except Exception as ex:
request.error_msg = 'xxx'
return queryset
# admin.py
@admin.register(SomeModel)
class MyAdmin(CustomAdmin):
list_filter = (MyFilter,)
def get_queryset(self, request):
if hasattr(request, 'error_msg'):
print request.error_msg
发送" error_msg"到change_list管理模板并显示它。 另一个想法是重定向,但我不认为它可能来自过滤器。
答案 0 :(得分:1)
messages framework可用于向用户显示错误,例如:
from django.contrib import messages
class MyFilter(SimpleListFilter):
title = ugettext_lazy('Score')
parameter_name = 'Score'
def lookups(self, request, model_admin):
return [('0.9', 's>=0.9')]
def queryset(self, request, queryset):
try:
something
except Exception as ex:
messages.error(request, '<error string>')
return queryset