Создание модели Django для рецепта #2

Это вопрос в продолжение темы Создание модели Django для рецепта. Я могу выбрать несколько ингредиентов для одного рецепта, но мой код позволяет выбрать только одно общее количество, которое ассоциируется со всеми выбранными ингредиентами. Например: (рецепт BLT) я могу выбрать бекон, салат и помидор, но я не могу иметь различные количества для каждого (т.е. бекон(1), салат(1), помидор(2).

).
class Recipe(models.Model):
    '''A recipe class to input new recipes'''
    recipe = models.CharField(max_length=50)
    ingredient = models.ManyToManyField(Ingredient)
    quantity = models.CharField(max_length=1)
    cuisine = models.ForeignKey(Cuisine, null=True, on_delete=models.SET_NULL)

    def __str__(self):
        return self.recipe

class Ingredient(models.Model):
    '''All ingredients for any recipe or individual selection'''
    ingredient = models.CharField(max_length=50)
    department = models.ForeignKey(Department, null=True, on_delete=models.SET_NULL)

    def __str__(self):
        return self.ingredient

мой код позволяет только один общий выбор количества, который ассоциируется со всеми выбранными ингредиентами

class Recipe(models.Model):
    '''A recipe class to input new recipes'''
    recipe = models.CharField(max_length=50)
    ingredient = models.ManyToManyField(Ingredient)
    quantity = models.CharField(max_length=1)
    cuisine = models.ForeignKey(Cuisine, null=True, on_delete=models.SET_NULL)

    def __str__(self):
        return self.recipe

В отличие от того, что вы описываете на английском языке, вы связываете количество с рецептом, а не с ингредиентами. Поскольку нет смысла в том, чтобы для каждого рецепта было одно количество, quantity не принадлежит к классу Recipe. Вместо этого, quantity должен быть в классе Ingredient, потому что каждый ингредиент имеет количество.

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