我是Django和AJAX(javascript)的新手。 最后,我可以向django视图发送一些参数。此视图呈现编辑表单。 我发送参数和视图响应表单以及我需要的信息,但我无法重定向到从视图呈现的表单。 AJAX Fucntion:
$.ajax({
type:"GET",
url: "/recepcion/",
datatype: 'json',
data: ({i: idpro[0].innerHTML, a: ano[1].innerHTML, m: mes1[2].innerHTML }),
success: function(data){
window.location.href = data.redirect;
//window.open("GET",url,true)
}
});
django观点:
def RecepcionView(request):
idp = request.GET.get('i')
anio = request.GET.get('a')
mes = request.GET.get('m')
if request.method == 'POST':
r = DetalleRecepcion.objects.get(id_proveedor=idp,anio=anio,mes=mes)
form = RecepcionForm(request.POST, instance=r)
if form.is_valid():
form.save()
return HttpResponseRedirect('/monitor/')
else:
r = DetalleRecepcion.objects.get(id_proveedor=idp,anio=anio,mes=mes)
form = RecepcionForm(instance=r)
return render_to_response('recepcion.html',
{'form':form},
context_instance=RequestContext(request))
在firebug控制台中,我可以看到响应,并且是包含我需要的信息的表单。 我不知道如何从响应中重定向到页面,我不确定是否必须在django视图中添加一些重定向功能或仅在ajax成功函数中添加一些重定向功能。 我对这两种语言真的很新,我很困惑,错误在哪里。
提前致谢
答案 0 :(得分:0)
我猜你的代码中有一个"常规" view(不是用于处理ajax数据的视图)。可以在视图中实现重定向,您不需要ajax。 只需提交表格即可。在您的recepcion.html文件中写下类似
的内容some html
<form method="POST" action=""> <!-- we leave the action part blank, to send the data to the same view -->
{{ form }} <!-- the form you are passing to the template -->
{% csrf_token %} <!-- do not forget the token or django will return an error -->
<input type="submit" name="submit" value="Submit"/>
</form>
some html
顺便说一下: