Джанго: как использовать атрибут message_dict ValidationError?

Я пытаюсь поймать сообщение об ошибке проверки модели, а затем отправить его в шаблон с помощью переменной контекста, чтобы распечатать его на веб-странице. Но не может этого сделать. Я прочитал материал django, в котором говорится, что попробуйте использовать атрибут message_dict ValidationError, но не могу найти хороший пример для этого.

(ссылка на django https://docs.djangoproject.com/en/1.5/ref/models/instances/#django.db.models.Model.full_clean)

Ниже приведена часть моего кода.

        try:
            user.full_clean()
        except ValidationError as e:

            email_error_message = e.message_dict['email']
            nickname_error_message = e.message_dict['nickname']

            return render(request, 'welcome/register.html', {'email_error_message' :   
                 email_error_message, 'nickname_error_message' : nickname_error_message})

Как я мог сделать это возможным? Заранее спасибо :)


person nextdoordoc    schedule 07.05.2014    source источник


Ответы (1)


Значение message_dict представляет собой список сообщений об ошибках, а не просто одно сообщение об ошибке, поэтому вам необходимо объединить сообщения.

try:
    user.full_clean()
except ValidationError as e:

    email_error_message = ','.join(e.message_dict['email'])
    nickname_error_message = ', '.join(e.message_dict['nickname'])

    return render(request, 'welcome/register.html', {'email_error_message' :   
         email_error_message, 'nickname_error_message' : nickname_error_message})
person Spight    schedule 09.05.2014