Я никогда не пробовал этого, но вы могли бы иметь два класса ModelForm, определенных в вашем коде, а затем создать новый простой класс Form
, который в своем __init__
создал копию каждого ModelForm
и скопировал поля в себя .
Что-то вроде:
class DualForm(forms.Form):
def __init__(self, *args, **kwargs):
model1 = Model1Form(**kwargs)
model2 = Model2Form(**kwargs)
for f in model1.fields:
self.fields[f] = model1.fields[f]
for f in model2.fields:
self.fields[f] = model2.fields[f]
class Model1Form(forms.ModelForm):
... your model form...
class Model2Form(forms.ModelForm):
... your other model form...
Не понимаю, почему это не сработает.
Просто убедитесь, что вы передаете аргументы данных в ModelForms
и исключаете ловушки и всплывающие сообщения ... Я также не уверен, что произойдет, если у вас есть конфликтующие имена полей. Это может быть хлопотно ...