Шаблон CreateView с полями ManyToMany
Я играю с Джанго и сталкиваюсь с проблемой, которую не могу решить. У меня есть отношения M2M между тремя таблицами, и я хочу создать CreateView. Для упрощения, скажем, у нас есть три модели:
class Ingredient(models.Model):
name = models.Charfield(max_length=20, unique=True)
class Recipe(models.Model):
recipe_name = models.Charfield(max_length=20, unique=True)
ingredients = models.ManyToManyField(Ingredient, through=Units)
class Unit(models.Model):
recipe = models.ForeignKey(Recipe, ....
ingredient_units = models.FloatField()
ingredient = models.ForeignKey(Ingredient, ....)
При создании нового рецепта (в шаблоне CreateView) пользователь должен ввести имя рецепта, затем должен выбрать один из текущих ингредиентов (в теге select HTML) и добавить единицы этого ингредиента (2). Кроме того, я хочу добавить кнопку, которая добавляет новую строку с выбором ингредиента и полем Unit, чтобы добавить столько строк, сколько хочет пользователь, и сохранить его.
Проблема в том, что я не знаю, как добавить поля из отношения M2M в шаблон CreateView, или как сохранить Рецепт в то же время, что и множество кортежей Units.
Это уже работает в разделе администратора:
но я хочу то же самое для пользователей на переднем конце.
Тогда возникает вопрос: как я могу добавить поля из другой модели и сохранить их при сохранении формы?