在Django中使用相同的请求将参数传递给多个表单

时间:2014-10-03 21:28:49

标签: python django django-models django-forms

我是django的新手,我有一个疑问: 可以将参数传递给多个表单。

方案: 我有一个用django-tables2渲染的html表,在第一列我有一个下拉按钮。下拉按钮中的一个项目打开一个带有3种不同形式的引导模态窗口(所有格式化模型形式)。 参数使用javascript函数,函数从html表的某些单元格中取值,并将此值作为参数发送。 所有这些形式都采用相同的论点。我可以将参数传递给一个表单,但我需要将参数传递给所有表单。

简单来说: 如何在同一个帖子请求中将参数传递给各种形式?

我上面怎么说我是django的新手,我不知道是否可以获得此功能。 的更新 我的表格:(所有表格都有相同的代码。非名称更改)

class RecepcionForm(forms.ModelForm):
       def __init__(self,*args,**kwargs):
       super(RecepcionForm,self).__init__(*args,**kwargs)
       self.helper = FormHelper(self)
       self.helper.layout.append(Submit('save','Grabar'))
    class Meta:
       model = DetalleRecepcion

我的观点:(所有表单都使用这样的视图。只有视图名称更改

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

我只知道如何将值传递给唯一的表单。我用这个功能:

<script type="text/javascript">
function param(){
  var tbl = document.getElementById("myTable");
  var rows = tbl.rows;
  var argu = "";
  for (var i = 0; i < rows.length; i++){
   rows[i].onclick =  function(){
   idpro = this.cells;
  argu = "?i="+idpro[0].innerHTML+"&a="+idpro[1].innerHTML+"&m="+idpro[2].innerHTML;
   window.location = "/recepcion/"+argu;
   }
  }
}
</script>

我知道该函数编码非常糟糕,但是使用ajax post请求重定向模板时遇到了一些麻烦。 我尝试使用此功能,但我永远不能重定向到我发送参数的表单

<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:"GET",
    url: "/recepcion/",
    datatype: 'json',
    data: ({i: idpro[0].innerHTML, a: ano[1].innerHTML, m: mes1[2].innerHTML }),
    success: function(){
      }
    });
   }
  }
 });
 return false;
}
</script>

任何想法或建议如何实现此功能。?

提前致谢

0 个答案:

没有答案