Django:客户端的表单验证?

时间:2016-10-06 23:14:54

标签: ajax django django-forms django-validation

我有两个问题。

  1. 我仅通过view确认POST接受ajax请求(非一般POST请求)
  2. 我正在使用Form并意识到如果我使用ajax,我就无法使用django内置表单验证。

    在这种情况下,我是否必须对javascript中的所有字段进行自己的验证?我认为这是一个耗时且多余的事情。任何替代方案?


    2. view仅接受ajax POST请求是否可以?我的意思是,我这样做:

    def post(self, request, *args, **kwargs):
        if request.is_ajax():
            # return response
        else:
            # give HTTP404
    

    这是不好的做法吗?一旦view接受ajax请求,它是否也总是接受一般的HTTP请求?

    感谢。

1 个答案:

答案 0 :(得分:0)

在单独的模板中生成表单HTML。当您使用ajax提交时,如果表单无效,即form.is_invalid(),则使用request.POST实例化表单并再次呈现模板。然后,将此呈现的HTML返回到Ajax函数并替换现有表单。

这样可以防止不得不乱用JS。