Как повторно использовать ModelForm для сквозной модели с дополнительным полем?
У меня есть Модель Example
и соответствующая МодельФормы ExampleModelForm
, которую я использую в ModelFormset
ExampleModelFormset = modelformset_factory(Example, form=ExampleModelForm)
У меня есть модель "многие-ко-многим" с дополнительным свойством.
class ExampleThrough(models.Model):
batch = models.ForeignKey(Batch, on_delete=models.CASCADE)
example = models.ForeignKey(Example, on_delete=models.CASCADE)
property = models.FloatField()
Есть ли способ повторно использовать ExampleModelForm для создания ExampleThroughModelForm, которую я также могу использовать в ExampleThroughModelFormset? Я хочу иметь все те же поля, что и в ExampleModelForm, плюс одно новое свойство.
Я не думаю, что могу наследоваться от ExampleModelForm:
class ExampleThroughModelForm(ExampleModelForm):
class Meta:
model = ExampleThrough
fields = '__all__'
Потому что в документации есть следующее примечание:
Применяются обычные правила разрешения имен Python. Если у вас есть несколько базовых классов, которые объявляют внутренний класс Meta, будет использоваться только первый. Это означает Meta дочернего класса, если он существует, иначе Meta первого родителя и т.д.
.