django ajax 跳转方法,Ajax调用后,django不重定向给定的url?

作者探讨了如何在Django 1.8中使用Ajax同时保存数据库数据和图片,遇到验证错误及解决过程。关键问题在于处理无效数据提交和Ajax请求后的视图响应。通过实例展示了如何处理表单验证、错误处理和重定向问题。
摘要由CSDN通过智能技术生成

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

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

0rwea.png

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

在----------------密钥列表.html------------------------------在{ % extends "base.html" %}

{% load crispy_forms_tags %}

{% block title %}

{% if create %}Create{% else %}New Key{% endif %}Serious

{% endblock %}

{% block heading %}

Create New Serial Keys

{% 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|crispy }}

{% csrf_token %}

Expiry Date*:

{% 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)

不执行。在

请期待专家的帮助。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值