TL; DR: мне нужен какой-то набор форм для наборов форм.
У меня есть две разные модели, связанные с одним бизнес-объектом, и мне нужно создать форму, чтобы редактировать обе модели как одну форму,И мне нужно создать много таких форм на одной странице, как это делает встроенный набор форм djngo.
Теперь у меня есть следующая вещь:
class Parent(models.Model):
name = models.Charfield()
class FirstChild(models.Model):
name = models.Charfield()
e_id = models.IntegerField()
parent = models.ForeignKey(Parent)
class FirstChildForm(django.forms.ModelForm):
class Meta:
model = Child
fields = ('name', 'e_id', 'parent')
widgets = {'parent': forms.TextInput}
И я рендеринг многих из них с использованиемвстроенные наборы форм:
formset_class = inlineformset_factory(Parent, FirstChild,
form=FirstChildForm, extra=1)
Но теперь мне нужно добавить вторую дочернюю модель и форму для нее, и все равно визуализировать ее как одну встроенную форму, немного заставив ее фактически редактировать две модели.Вот так:
class SecondChild(models.Model):
name = models.Charfield()
e_id = models.IntegerField()
parent = models.ForeignKey(Parent)
class SecondChildForm(django.forms.ModelForm):
class Meta:
model = Child
fields = ('name', 'e_id', 'parent')
widgets = {'parent': forms.TextInput}
formset_class = inlineformset_factory(models=[Parent, FirstChild],
forms=[FirstChildForm, SecondChildForm],
extra=1)
Насколько я понимаю, наборы форм Django сейчас не могут работать с несколькими моделями.
Итак, какой способ выбрать для реализации этого поведения и не нарушать все концепции django?Я не могу использовать некоторые дополнительные библиотеки, поэтому мне нужно все реализовать самостоятельно, и я использую django 1.6, если это важно.