0

カスタム フォームを使用している inline_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))    
4

1 に答える 1

1

からフォームセットのフォームにアクセスできますformset.forms

失敗した場合myFormSet.forms[0].foo()は、フォームセットにフォームがない可能性があります。どのように失敗するのか教えてくれませんでした - IndexError?

で を定義している場合formsetinlineformset_factoryそれが から継承されていることを確認しましたBaseModelFormSetか?

于 2011-11-22T18:03:17.177 に答える