我在django-admin中有一些链接到我的change_form的自定义视图。 一切正常,但现在我想从我的自定义视图中引发一个ValidationError,然后在django-admin中获取flash,打印出ValidationError的消息,如果我在model.clean()中引发它,就会发生同样的情况。
我使用的自定义视图示例:
@site.admin_view
def send_transaction_mail(request, obj_id, typ):
order = Order.objects.get(id=obj_id)
if typ == 'SHIPMENT':
send_order_confirm(order)
else:
raise Exception("Something goes wrong sending transaction mail")
return HttpResponseRedirect(request.META['HTTP_REFERER'])
有办法吗?谢谢
答案 0 :(得分:1)
不确定我理解你想要的东西:
根据定义,您可以查看公共页面。您希望它在管理页面中显示错误消息(通过定义私有页面)?这很古怪。但如果你愿意的话。
要在管理页面中显示错误,请使用Django Message Framework。这是用于在页面顶部显示带有错误/通知的黄色行的方法。
from django.contrib import messages
messages.error(request, "Something goes wrong sending transaction mail");
实际上,验证错误仅与表单一起显示。因此,它们只能在表单,formset或字段的clean()方法中引发。