Ajax调用后,Django不重定向给定的url?

2024-06-10 01:05:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在数据库中保存数据的同时加载图像。所以,我调用Ajax来做这件事。我使用django1.8并在putajax调用Django不重定向默认页面后成功添加数据视图.py方法也会运行。在

当我向论坛提交无效数据时,在putajax调用之前,在提交时,显示验证错误。但是现在只查看Ajax错误消息。在

before add ajax call

但是在addajax之后,现在我输入submitwithoutdata没有显示上面的说明(验证错误)。我使用了Django默认验证,它们是在创建表单时定义的模型类。在

在----------------密钥列表.html------------------------------在

{ % extends "base.html" %}
{% load crispy_forms_tags %}

{% block title %}
  {% if create %}Create{% else %}New Key{% endif %}Serious
{% endblock %}

{% block heading %}
  <h2>
      Create New Serial Keys
  </h2>
{% endblock %}

{% block content %}
  {% if create %}
    {% url "marcador_key_create" as action_url %}
  {% else %}
    {% url "marcador_bookmark_search" pk=form.instance.pk as action_url %}
  {% endif %}
  <form action="{{ action_url }}" method="post" accept-charset="utf-8" id="createForm" >
    {{ form|crispy }}
    {% csrf_token %}
    <div id="submit_loader"></div>
    <p> <b>Expiry Date*:</b>  <input type="date" id="datepicker" name="expier_date"></p>
    <p><input type="submit" class="btn btn-default" value="Save"   id="save_button"> </p>

  </form>

{% endblock %}

在-------基本.html(ajax方法)-------------------------------

^{pr2}$

在---------视图.py(调用方法)-------------------------------

   @login_required
def key_create(request):
    #print(request.POST)

    if request.method == 'POST':
        form = KeyGenarateForm(data=request.POST)
        expier_date = request.POST['expier_date']
        #print(expier_date=="")
        if(expier_date==""):
            form.is_valid= False;


        if form.is_valid():
             #request.POST._mutable = True
             Key_Gen = form.save(commit=False)
             Key_Gen.save(expier_date)
             return redirect('marcador_bookmark_user',username=request.user.username)
        else:
            print('form not valied')
            return render('marcador_bookmark_user',username=request.user.username)
    else:
        form = KeyGenarateForm()

    context = {'form': form, 'create_key': True}
    return render(request, 'marcador/key_genarate_form.html', context)

我测试时,我输入有效的数据和提交,每件事都成功,但没有重定向我的网址。它在字段中显示我的旧数据。在

我注意到了视图.py返回方法未加载。在

  return redirect('marcador_bookmark_user',username=request.user.username)

不执行。在

请期待专家的帮助。在


Tags: 数据方法formurldateifrequesthtml
1条回答
网友
1楼 · 发布于 2024-06-10 01:05:19

这可能会对您有所帮助:

而不是在视图.py公司名称:

return redirect('marcador_bookmark_user',username=request.user.username)

使用这个:

^{pr2}$

最后介绍ajax成功函数:

window.location.href = '/url-path'+data.username; 

将在“数据”中命名为“用户名”。在

相关问题 更多 >