从django中的html表传递多个参数

时间:2014-09-08 22:13:54

标签: django django-forms django-tables2

我是Django的新手,我试图将使用django-tables2呈现的html表中的值传递给表单。

view.py

def configView(request):
    form = ConfigForm(request.POST or none)

    if form.is_valid():
       save_it = form.save(commit=False)
       save_it.save()
       Messages.success(request, 'Configuracion Actualizada')
       return HttpResponseRedirect('/monitor/')

    return render_to_response("config.html",
                              locals(),
                              context_instance=RequestContext(request))

这是我的forms.py

class ConfigForm(forms.ModelForm):
    class Meta:
       model = Config

    def __init__(self, *args, **kwargs):
        super(ConfigForm, self).__init__(*args,**kwargs)
        self.fields['id_proveedor'].initial = kwargs.pop('id_proveedor',None)

但我不知道如何检索并将值传递给表单。 我需要传递来自单元格0,2和6的值。

任何建议或片段都将受到赞赏。

提前致谢

1 个答案:

答案 0 :(得分:0)

我会试试这个:

类ConfigForm(forms.Form):

def __init__(self, *args, **kwargs):
    your_variable_to_pass = kwargs.pop("your_variable_to_pass")
    super(ConfigForm, self).__init__(*args,**kwargs)
    self.fields['id_proveedor']= forms.FieldClass(attribute=your_variable_to_pass)

id_proveedor = FieldClass()

其中,' FieldClass'是你选择的任何领域(即ChoiceField,CharField)和 attribute是要传递的属性(您的变量),即' choice',' initial'等等 因此,它可能看起来像这样:      self.fields [' id_proveedor'] = forms.ChoiceField(choices = your_variable_to_pass)

id_proveedor = ChoiceField()

注意缩进 - 您指定要在构造函数中传递的属性的值!在ChoiceField选择的情况下,选择是一个元组列表,即((' 1',' First',),(' 2',' Second&# 39 ;,));我在本例

中使用Forms而不是ModelForm作为超类或基类

然后,在视图中:f = ConfigFrom(request.POST,your_variable_to_pass = your_variable_to_pass)

请注意your_variable_to_pass = your_variable_to_pass,否则会产生密钥错误

我希望,这有帮助!