Создание модели 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
Я застрял, пытаясь понять, как связать один рецепт с несколькими ингредиентами в базе данных. На данный момент мне удалось создать только один ингредиент для каждого рецепта. Внешние ключи предназначены для других созданных классов, которые описывают отдельные ингредиенты и кухни.
Здесь есть два решения:
Поместите внешний ключ в класс ингредиентов:
class Ingredients(models.Model): ... recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)Это связывает каждый ингредиент с рецептом и позволяет каждому рецепту иметь несколько ингредиентов.
Используйте
ManyToManyFieldв рецепте:class Recipe(models.Model): ... ingredients = models.ManyToManyField(Ingredient)Это позволяет добавить один и тот же ингредиент в несколько рецептов, а в каждом рецепте несколько ингредиентов.