如何访问窗体集的成员窗体?

2024-06-16 10:03:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个内联表单集,我正在使用自定义表单。这个表单有我想调用的各种函数。但是,给定一个formset实例,我如何访问它(那些?)表格?你知道吗

下面是一些伪代码:

    class MyModel(models.Model):
        myField = models.ForeignKey(MyOtherModel)

    class MyOtherModel(models.Model):
        myField = models.CharField()

    class MyModelForm(forms.ModelForm):
        class Meta:
            model = MyModel

    class MyOtherModelForm(forms.ModelForm):
        class Meta:
            model = MyOtherModel
        def foo(self):
          print "foo"

    MyFormSet = inlineformset_factory(MyModel,MyOtherModel,formset=MyOtherForm)

    def MyView(request):
        myModel = MyModel()
        myForm = MyModelForm(instance=myModel)
        myFormSet = MyFormSet(intance=myModel)

        # THIS FAILS...
        myFormSet.foo()
        # SO DOES THIS...
        myFormSet.forms[0].foo()
        # SO DOES THIS...
        myFormSet.form.foo()
        # ANY IDEAS?

        return render_to_response('my_view.html', {"form" : myForm, "formset" : myFormSet },context_instance=RequestContext(request))    

Tags: 表单modelfoomodelsformsthisclassmymodel
1条回答
网友
1楼 · 发布于 2024-06-16 10:03:25

您可以通过formset.forms访问表单集的表单。你知道吗

如果myFormSet.forms[0].foo()失败,那么这可能意味着formset没有任何形式。你还没有告诉我们它以什么方式失败-IndexError?你知道吗

如果在inlineformset_factory中定义formset,是否确保它继承自BaseModelFormSet?你知道吗

相关问题 更多 >