1

フォームにインライン フォームセットを追加しようとしています。エラーを再現するための最小限のコードは次のとおりです。

models.py

class Festival(Model):
    desc = TextField(max_length=1000)

class FestivalAddress(Model):
    festival = ForeignKey(Festival, related_name="addresses")
    name = CharField(max_length="50")

urls.py

urlpatterns = patterns('',
    url('^add/$', FestivalCreateView.as_view(), name='festival_add'), 
)

ビュー.py

class FestivalCreateView(CreateView):
    model = Festival
    form_class = FestivalForm

    #Add FestivalAddressFormset to context here

フォーム.py

class FestivalAddressForm(ModelForm):
    class Meta:
        model = FestivalAddress

class FestivalForm(ModelForm):
    class Meta:
        model = Festival

FestivalAddressFormSet = inlineformset_factory(FestivalForm, FestivalAddress, form=FestivalAddressForm, extra=2)

これにより、AttributeError: 'ModelFormOptions' オブジェクトに属性 'get_parent_list' がありません。SO でここに示されている解決策に従っているので、私は少し困惑しています。

編集: フォームセットの有無にかかわらずエラーが発生するため、FestivalCreateView のフォームセットの使用を削除しました。

4

2 に答える 2

5

inlineformset_factory への呼び出しが間違っていたようです。docsによると、最初の引数はフォームではなくモデルにする必要があります。

于 2012-06-25T23:55:16.620 に答える
0

になるはずだった: FestivalAddressFormSet = inlineformset_factory(Festival, FestivalAddress, form=FestivalAddressForm, extra=2)

于 2012-11-27T10:37:42.900 に答える