Inline-formset не отображается в моей форме

У меня есть модель Company и модель Address, связанные отношением один-к-одному в Address:

class Company(CompanyParent):
  # some attributes

class Address(AddressParent):
  company = models.OneToOneField(Company)
  # some attributes

Поскольку они тесно связаны, я хочу, чтобы пользователь мог создать объект компании, объект адреса и отношения между ними, просто отправив одну форму; поэтому я изучил Inline Formsets. Вот мой forms.py:

class CompanyModelForm(forms.ModelForm):

    class Meta:
        model = Company
        fields = # ...
        labels = {
            # ...
        }

    def __init__(self, *args, **kwargs):
        super(HubModelForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.form_class = 'form-horizontal style-form centered'
        self.helper.add_input(Submit('submit', 'Submit'))


class AddressModelForm(forms.ModelForm):
    class Meta:
        model = Address
        fields = # ...
        labels = {
            # ...
        }


AddressFormSet = inlineformset_factory(Company, Address, form=AddressModelForm)

Вся логика обрабатывается представлением:

class CreateCompanyView(SuccessMessageMixin, CreateView):

    model = Company
    form_class = ComapnyModelForm
    template_name = # ...
    success_url = '/'
    success_message = # ...


    def get_context_data(self, **kwargs):
        ctx = super(CreateCompanyView, self).get_context_data(**kwargs)
        if self.request.POST:
            ctx['formset'] = AddressFormSet(self.request.POST)
        ctx['formset'] = AddressFormSet()
        return ctx

    def form_valid(self, form):
        ctx = self.get_context_data()
        formset = ctx['formset']
        with transaction.atomic():
            self.object = form.save()
            if formset.is_valid():
                formset.instance = self.object
                formset.save()
        return super(CreateCompanyView, self).form_valid(form)

Когда я использую {% crispy form %} в своем шаблоне, отображается только форма, относящаяся к Company. Я могу использовать {% crispy formset %} для отображения полей относительно Address, но в этом случае это две разные формы и в результате отправки создается только объект Company. что я упускаю?

Вернуться на верх