В Django, как я могу получить сообщение об исключении?
в функции просмотра у меня есть что-то вроде:
try:
url = request.POST.get('u', '')
if len(url) == 0:
raise ValidationError('Empty URL')
except ValidationError, err:
print err
вывод представляет собой строку:[u'Empty URL']
когда я пытаюсь передать сообщение об ошибке в мой шаблон (набитый дикт, что-то вроде { 'error_message': err.value }
), Шаблон успешно получает сообщение (используя {{ error_message }}
).
проблема в том, что я получаю ту же строку, что и выше,[u'Empty URL']
С [u'...']
!
как мне избавиться от этого?
(Python 2.6.5, Django 1.2.4, Xubuntu 10.04)
2 ответов
ValidationError
на самом деле содержит несколько сообщений об ошибках.
выход print err
и [u'Empty URL']
потому что это строка, возвращаемая repr(err.messages)
(см. ValidationError.__str__
исходный код).
если вы хотите распечатать одно читаемое сообщение из ValidationError
, вы можете объединить список сообщений об ошибках, например:
print '; '.join(err.messages)