我是Django和AJAX (javascript)的新手。最后,我可以向django视图发送一些参数。此视图呈现编辑表单。我用我需要的信息发送参数和视图响应表单,但是我不能重定向到从视图呈现的表单。AJAX设置:
$.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成功函数中添加一些重定向函数。我对这两种语言很陌生,我很困惑哪里有错误。
提前感谢
发布于 2014-10-02 17:33:35
从您的代码中,我猜您有一个“常规”视图(而不是一个用于处理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顺便说一下:
https://stackoverflow.com/questions/26165703
复制相似问题