javascript - 如何使用 python django 使用 ajax 显示表单中的错误消息

标签 javascript python ajax django

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

这是我的代码

表单.py

class SecurityCode(forms.Form):
    sCode = forms.RegexField(regex=r'^\w+$', widget=forms.TextInput(attrs=dict(id="scode", name="scode", required=True, size=25, placeholder="    Security Code")), error_messages={ 'invalid': "This value must contain only letters, numbers and underscores." })

Views.py

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

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

注意:我试图在此 View 中而不是在我的 html 上获取错误消息,因为我试图在我的 javascript 上发出警报。另外,这只是我的示例代码,而不是原始代码。

最佳答案

你可以试试这个:

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来说明每个字段的错误消息的恢复。

关于javascript - 如何使用 python django 使用 ajax 显示表单中的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40861367/

相关文章:

python - 在 Python 中除以长整型会返回错误的答案

javascript - 如何使用成品排序功能

javascript - 如何对json对象的数据进行排序并在html中相应显示?

javascript - 如何在 Ajax 编程中保持 ID 的唯一性?

java - Struts2中如何保留表单值?

python - 如何在cv2.warp方法中获取扭曲了 “from no where”的像素的蒙版?

javascript - 通知家长其 child 发生了变化

python - 正则表达式从 Python 中的字符串中删除 html 标签

javascript - Ajax 在等待 d3 graphs/.json 响应时加载图形? ( rails )

javascript - 为什么此查询字符串参数在移动设备上不起作用?