Как повторно использовать 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 первого родителя и т.д.

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