1

我在 django-admin 中有一些自定义视图链接到我的 change_form。一切正常,但现在我想从我的自定义视图中引发一个 ValidationError 并因此在 django-admin 中获取打印 ValidationError 的 msg 的 flash,如果我在 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'])

有办法吗?谢谢

4

1 回答 1

1

不确定我是否理解您想要的内容:

您有一个视图,根据定义,一个公共页面。您希望它在管理页面(根据定义私人页面)中显示错误消息吗?这很奇怪。但如果你愿意的话。

要在管理页面中显示错误,请使用Django 消息框架。它用于在页面顶部显示带有错误/通知的黄色行。

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

事实上,验证错误只显示在表单中。因此,它们只能在表单、表单集或字段的 clean() 方法中引发。

于 2013-07-10T08:55:14.640 回答