在Django,如何获取异常消息?

2024-04-29 18:35:27 发布

您现在位置:Python中文网/ 问答频道 /正文

在视图函数中,我有如下内容:

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

输出是一个字符串:[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)


Tags: 函数字符串视图模板url内容messagerequest
2条回答

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

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

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

print '; '.join(err.messages)

我通过将ValidationError更改为BaseException来修复它。

相关问题 更多 >