Django:如何使用ValidationError的message_dict属性?

时间:2014-05-07 16:11:28

标签: django model-validation 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})

我怎么能让它成为可能?在此先感谢:)

1 个答案:

答案 0 :(得分:0)

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})