如何使用python django使用ajax从表单显示错误消息

时间:2016-11-29 08:49:28

标签: javascript python ajax django

我试图显示我在表单上提供的错误消息,但它只显示id名称而不是错误消息。

这是我的代码

Form.py

def security(request):
    if request.method == 'POST':
            securityField = SecurityCode(request.POST)

            if taxpayerField.is_valid():
                return HttpResponse("success")
            else:
                return HttpResponse(taxpayerField.errors)

Views.py

SELECT artist FROM yourTable WHERE (SELECT GROUP_CONCAT(album) FROM yourTable) LIKE CONCAT('%',artist,'%');

注意:我试图在此视图中收到错误消息,而不是在我的HTML上,因为我试图在我的javascript上提醒您。这也只是我的示例代码而不是原始代码。

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

views.py:

from django.http import JsonResponse

def security(request):
    form = SecurityCode(request.POST)

    if not form.is_valid():
        return JsonResponse({
            'success': False, 
            'err_code': 'invalid_form', 
            'err_msg': form.errors,
        })

    #[...] Actions if form is valid ...

    return render(request, 'template.html')

javascript代码:

def submit_form(){
    var data = {
        field1: '...',
        field2: '...',
        csrfmiddlewaretoken: 'csrftoken',
    };

    $.ajax({
        url: '/submit/form/',
        method: 'POST',
        data: data,
        dataType: 'json',
        success: function (data){
            if (data.success){
                // Actions ...
            }
            else if (data.err_code === 'invalid_form'){
                for(var key in data.err_msg){
                    console.log('[error] for ' + key + ': ' + data.err_msg[key][0]);
                }
            }
        },
    });
}

我使用console.log来说明每个字段的错误消息的恢复。