从自定义视图中提升django管理员验证错误

时间:2013-07-10 07:52:35

标签: django django-admin

我在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'])

有办法吗?谢谢

1 个答案:

答案 0 :(得分:1)

不确定我理解你想要的东西:

根据定义,您可以查看公共页面。您希望它在管理页面中显示错误消息(通过定义私有页面)?这很古怪。但如果你愿意的话。

要在管理页面中显示错误,请使用Django Message Framework。这是用于在页面顶部显示带有错误/通知的黄色行的方法。

from django.contrib import messages
messages.error(request, "Something goes wrong sending transaction mail");

实际上,验证错误仅与表单一起显示。因此,它们只能在表单,formset或字段的clean()方法中引发。