首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Ajax呈现django-crispy-forms的验证错误?

如何用Ajax呈现django-crispy-forms的验证错误?
EN

Stack Overflow用户
提问于 2020-05-12 16:46:09
回答 1查看 259关注 0票数 1

我想用ajax显示Django默认的表单错误。在这里,如果有一些错误,it代码应该显示django-crispy-forms的验证错误。但我不能这么做。应该将postscript添加到什么位置?

Views.py;

代码语言:javascript
复制
    if form.is_valid();  
        ~~~~~~
        if self.request.is_ajax():
            return JsonResponse({
                'is_valid': True,
                'redirect':reverse(/.../),
            })
        return redirect(hogehoge)
    else:
        if self.request.is_ajax():
            return JsonResponse({
                'is_valid': False,
                'error':form.errors,
            })

Javascript;

代码语言:javascript
复制
<script>
$(function() {
  $(document).on('click', '.submit_button', function (e) {
    var $form = $('.form'); 
    var form = $form[0];
    e.preventDefault();
    $.ajax({
        processData: false,
        contentType: false,
        dataType: 'json',
        url: $form.attr('action'),
        type: $form.attr('method'),
        data: new FormData(form),
        }).done(function(data,textStatus) {
          if (data.is_valid) {
            window.location.href = data.redirect;
            }
            else {
             *Display Django default validation errors if there are error forms.*
            }
      });
    });
  });
</script>

*表单HTML;

代码语言:javascript
复制
<form class="form" action="" method="post" enctype="multipart/form-data">
<div class="input">
  {% if field.errors %}
  {% render_field field class+="form-handles is-invalid" %}
  {% for error in field.errors %}
  <div class="invalid-render">
    {{ error|escape }}
  </div>
  {% endfor %}
  {% else %}
  {% render_field field class+="form-handles" %}
  {% endif %}
</div>
  <div class="text-center">
    <button type="submit" class="submit_button">submit</button>
  </div>

</form>
EN

回答 1

Stack Overflow用户

发布于 2020-05-14 22:28:32

您可以在官方文档中找到有关how to render only form in AJAX response的信息。它将包含表单、输入值和表单错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61747420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档