在提交之前在javascript中检查django表单错误的最佳方法是什么?

时间:2013-05-29 15:36:30

标签: javascript django django-forms error-checking

实际上我需要一个在javascript验证(客户端)和我的django表单验证(服务器端)中具有相同错误消息的方法。

我搜索任何django库,但我找不到。这是我在SO中创建的最相关的问题,但似乎没有帮助:

Django Javascript form validation

你知道任何django库吗?如果不知道什么是最好的方法呢?

提前致谢。

1 个答案:

答案 0 :(得分:1)

我找不到任何现有的库来轻松完成此操作,因此我使用了一种解决方法。

Django表单错误为列表格式。很难将字典列表从Django传输到JS。我有一个方便的功能。此函数(convertErrorsToDict)将每个参数的所有错误汇总为1个错误。

views.py:

def convertErrorsToDict(errors): #previously errors={f1:[er1]}. make it {f1:'er1'} so we can render nicely
    #converts form errors from list to dictionary
    errors2={}
    for f in errors:
        errors2[f]='.'.join(errors[f])
    return (errors2)


def setPassword(request):
    your_form=FormName();
    context={}
    errors=convertErrorsToDict(your_form.errors)
    context['errors']=errors;
    return render(request,'htmlFileName.html',context)

FileName.html:

{% load jsonify %}
<script type="text/javascript">
    var errors={{errors|jsonify}};    
</script>

FileName.js 现在,在js文件中,我们可以直接使用errors作为变量。

console.log(errors.para1) //para1 is first para in the form. eg first_name
console.log(errors.para2) 

当我们需要完全控制表单错误内容时,此功能很有用。