在Django中,我如何获得异常消息?

Nik*_*rez 11 python django exception-handling

在视图函数中,我有类似的东西:

try:
    url = request.POST.get('u', '')
    if len(url) == 0:
        raise ValidationError('Empty URL')
except ValidationError, err:
    print err
Run Code Online (Sandbox Code Playgroud)

输出是一个字符串: [u'Empty URL']

当我尝试将错误消息传递给我的模板(填入dict,类似的东西{ 'error_message': err.value })时,模板成功获取消息(使用{{ error_message }}).

问题是,我得到与上面完全相同的字符串[u'Empty URL'],用[u'...']!

我怎么摆脱它?

(Python 2.6.5,Django 1.2.4,Xubuntu 10.04)

sco*_*fey 15

ValidationError 实际上包含多个错误消息.

输出print err[u'Empty URL']因为那是返回的字符串repr(err.messages)(参见ValidationError.__str__源代码).

如果要从a打印单个可读消息ValidationError,可以连接错误消息列表,例如:

print '; '.join(err.messages)
Run Code Online (Sandbox Code Playgroud)