Как показать форму 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 для упрощения редактирования и сохранения, но это невозможно - я ищу предложения или сторонние пакеты.