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

Я пытаюсь создать модель Django для базы данных рецептов. У меня проблемы с написанием модели, которая будет учитывать переменное количество ингредиентов (не каждый рецепт имеет одинаковое количество ингредиентов). Вот что у меня есть на данный момент:

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

    def __str__(self):
        return self.recipe

Я застрял, пытаясь понять, как связать один рецепт с несколькими ингредиентами в базе данных. На данный момент мне удалось создать только один ингредиент для каждого рецепта. Внешние ключи предназначены для других созданных классов, которые описывают отдельные ингредиенты и кухни.

Здесь есть два решения:

  1. Поместите внешний ключ в класс ингредиентов:

    class Ingredients(models.Model):
        ...
        recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
    

    Это связывает каждый ингредиент с рецептом и позволяет каждому рецепту иметь несколько ингредиентов.

  2. Используйте ManyToManyField в рецепте:

    class Recipe(models.Model):
       ...
       ingredients = models.ManyToManyField(Ingredient)
    

    Это позволяет добавить один и тот же ингредиент в несколько рецептов, а в каждом рецепте несколько ингредиентов.

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