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

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