使用AJAX请求打开Django表单

时间:2014-09-30 20:13:41

标签: jquery python ajax django django-forms

我正在尝试学习django和Javascript(jquery,ajax)。 注意:我是这两种语言的新手(JAVASCRIPT和PYTHON)。 我的情景: 我有一个html表与一些提供商的信息。我插入了编辑表单的链接(基于模型的django表格)。我从html表中使用javascript函数获取提供程序的Id,并将此值作为参数传递给编辑表单。 这是获取提供者id的函数,将其作为参数传递并打开编辑表单:

<script type="text/javascript">
function param(){
 $(function(){
  var http = new XMLHttpRequest();
  var tbl = document.getElementById("myTable");
  var rows = tbl.rows;
  var url = "/recepcion/";
  for (var i = 0; i < rows.length; i++){
   rows[i].onclick =  function(){
   idpro = this.cells;
   ano = this.cells;
   mes1 = this.cells;
   $.ajax({
    async: false,
    type:"POST",
    url: "/recepcion/",
    datatype: "json",
    data: ({idprov: idpro[0].innerHTML }),
    success: function(data){
      http.open("POST",url,true),
      http.send(data)
        }
  });
   }
  }
 });
}
</script>

这是我的django观点:

def RecepcionView(request):
    idp = request.POST.get('idprov')
    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))

我收到错误: DetalleRecepcion匹配查询不存在。我知道这个错误意味着什么。没有记录与我的过滤器匹配。 我在firebug控制台中看到函数从html表中获取值将其传递给表单,但我不知道为什么会出现此错误并且不会呈现编辑表单。

我知道错误是noob错误。但是在这两种语言中是新的很难,因为我不知道错误是在django视图中还是在AJAX POST函数中。

我需要一点帮助。

谢谢

0 个答案:

没有答案