Как показать форму django для многих ко многим со сквозным полем?

Я создал 3 модели:

class PropertyExtra(models.Model):
    type = models.CharField(choices=ExtrasType.choices, max_length=7)
    property_type = models.IntegerField(choices=PropertyType.choices)
    title = models.CharField(max_length=100)
    identifier = models.CharField(max_length=20, unique=True)


class Property(models.Model):
    extras = models.ManyToManyField(PropertyExtra, through="PropertyExtraData")


class PropertyExtraData(models.Model):
    value = models.CharField(blank=True, null=False, max_length=300)
    property_extra = models.ForeignKey(PropertyExtra, on_delete=models.CASCADE)
    property = models.ForeignKey(Property, on_delete=models.CASCADE)

В PropertyExtra пользователь-администратор может добавить такие пункты, как Электричество, Газ, Центральное отопление и т.д. Некоторые значения будут boolean, а некоторые int, что зависит от перечисления ExtrasType в PropertyExtra. Конкретное значение каждого свойства будет сохранено внутри PropertyExtraData.value.

В настоящее время у меня есть мастер создания формы для создания нового Property с помощью django-formtools и я хотел бы, чтобы один из шагов включал форму, которая показывает все доступные PropertyExtra для определенного property_type.

В принципе, если у меня есть вышеупомянутые Electricity, Gas, Central Heating записи в PropertyExtra - для определенного property_type я хочу отобразить 3 чекбокса, где пользователь может отметить их.

Предпочтительно было бы использовать ModelForm или ModelFormSet для упрощения редактирования и сохранения, но это невозможно - я ищу предложения или сторонние пакеты.

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