Хотел бы получить здесь отзывы о том, как структурировать новое приложение (учебный проект), которое помогает поварам создавать рецепты.
Рецепт - это конкретное c количество ингредиентов (например, : 1 c сахар) и / или компоненты (небольшой набор ингредиентов. Пример: простой сироп, который представляет собой рецепт 1 c сахара + 1 c воды).
Что касается моих моделей, вот что я думаю:
class Ingredient(models.Model):
name = models.CharField(max_length=150)
...
class Recipe(models.Model):
FULL = 1
COMPONENT = 2
TYPE_CHOICES = (
(FULL, 'Full Recipe'),
(COMPONENT, 'Component'),
)
name = models.CharField(max_length=150)
type = models.IntegerField(choices=TYPE_CHOICES, default=FULL)
...
class RecipeIngredient(models.Model):
recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
ingredient = models.ForeignKey(Ingredient, on_delete=models.CASCADE)
amount = models.FloatField()
...
Моя проблема в том, что я не уверен, как учитывать компонент (подмножество ингредиентов, используемых в нескольких рецептах). Я сделал его Recipe.type
, так как это действительно то, что есть, но не знаю, как это учесть в моей модели RecipeIngredient
.
Я мог бы добавить component = models.ForeignKey(Recipe)
к моей модели RecipeIngredient
и используйте любой из ингредиентов ИЛИ. Но только догадываюсь. У кого-нибудь есть предложение, как это сделать лучше?