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)