Django inline formset error

Я пытаюсь добавить встроенный набор форм в форму. Вот минимальный код для воспроизведения ошибки:

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'), 
)

views.py

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

    #Add FestivalAddressFormset to context here

forms.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 использование набора форм, потому что ошибка происходит с или без него.

2 ответа

Решение

Похоже, мой вызов inlineformset_factory был неверным. Согласно документам, первый аргумент должен быть моделью, а не формой.

Должно было: FestivalAddressFormSet = inlineformset_factory(Festival, FestivalAddress, form=FestivalAddressForm, extra=2)

Другие вопросы по тегам