在视图功能中,我有类似的东西:
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)
答案 0 :(得分:13)
ValidationError
实际上包含多条错误消息。
print err
的输出为[u'Empty URL']
,因为这是repr(err.messages)
返回的字符串(请参阅ValidationError.__str__
源代码)。
如果要从ValidationError
打印单个可读消息,可以连接错误消息列表,例如:
print '; '.join(err.messages)
答案 1 :(得分:-3)
我通过将ValidationError
更改为BaseException
来修复此问题。