在视图函数中,我有类似的东西:
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)
[ValidationError
实际上包含多个错误消息。
print err
的输出为[u'Empty URL']
,因为这是repr(err.messages)
返回的字符串(请参阅ValidationError.__str__
源代码)。
如果要从ValidationError
中打印单个可读消息,则可以合并错误消息列表,例如:
# Python 2
print '; '.join(err.messages)
# Python 3
print('; '.join(err.messages))
通过将ValidationError
更改为BaseException
来解决。