2012-07-11 41 views
2
视图宣布它

我已经宣布了下述形式我能传递一个变量为形式,而在Django

form = BudgetPageInitial() 
在我 view.py

,我要的是通过一个变量(比如“X” )写入BudgetPageInitial(),以便我可以在forms.py的表单定义中使用该变量来生成'x'个输入字段,其形式为BudgetPageInitial

请指导我这样做。

回答

2

查看

form = MiscQuestionForm(request.POST or None, misc=misc_questions) 

class MiscQuestionForm(BootstrapForm): 

    def __init__(self, *args, **kwargs): 
     misc = kwargs.pop('misc') 
     super(MiscQuestionForm, self).__init__(*args, **kwargs) 

     for question in misc: 
      if question.answer_type == 1: # bool 
       self.fields['custom_%s' % question.pk] = forms.BooleanField(
         label=question, required=True) 
      else: # textfield 
       self.fields['custom_%s' % question.pk] = forms.CharField(
         label=question, widget=forms.Textarea, 
         required=True) 

这是您可以使用变量传递给你的表单定义,因为我有misc的设计模式。

+0

我试图实现上述。最初它无法识别'BootstrapForm',因此我将其替换为'forms.Form',但在渲染模板时存在一些问题,您可以向我展示如何为此窗体实现模板。 – nimeshkiranverma 2012-07-11 09:52:54