Django-форма для сохранения дополнительных полей m2m (с использованием пользовательской таблицы through\assosiation)
У меня есть модель "Рецепт", которая содержит несколько моделей "Продукт", и отношения между Рецептом и Продуктом хранят количество продуктов. Таким образом, мне нужна пользовательская модель-посредник.
models.py:
class Product(models.Model):
name = models.CharField(max_length=50, null=False, blank=False)
quantity = models.PositiveSmallIntegerField(null=False, blank=False)
...
class Recipe(models.Model):
name = models.CharField(max_length=50, null=False, blank=False)
ingredients = models.ManyToManyField(Product, through='ProductRecipe')
...
class ProductRecipe(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE)
recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
quantity = models.SmallIntegerField(null=True)
Объект Recipe создается на основе формы, а объекты Product, которые должны быть частью Parent-объекта, выбираются с помощью флажков. Мой вопрос заключается в том, как мы можем добавить поле ProductRecipe.quantity в мою форму при создании объекта Recipe.
Вот мой файл forms.py, который я использую для создания объекта Recipe
class RecipeForm(ModelForm):
class Meta:
model = Recipe
fields = ['name ', ... , 'ingredients']
ingredients = forms.ModelMultipleChoiceField(
queryset=Product.objects.all(),
widget=forms.CheckboxSelectMultiple
)
Пытаемся получить дополнительное поле 'quantity' при создании объекта Recipe из формы django