使用成分、食谱和组件组织 django 食谱应用程序模型的最佳方式
Posted
技术标签:
【中文标题】使用成分、食谱和组件组织 django 食谱应用程序模型的最佳方式【英文标题】:Best way to organize models for django Recipe app with ingredients, recipes, and components 【发布时间】:2020-08-20 10:51:46 【问题描述】:希望获得有关如何构建帮助厨师制作食谱的新应用(学习项目)的反馈。
配方是特定数量的成分(例如:1c 糖)和/或成分(一小部分成分。例如:简单糖浆,这是一种1c糖+1c水的配方。
对于我的模型,这是我的想法:
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
模型中并使用该OR 成分。但只是猜测。有没有人建议更好的方法来做到这一点?
【问题讨论】:
【参考方案1】:这看起来有点复杂。你确定厨师真的想用这种方式定义成分和数量吗?
我会从这样简单的事情开始:
class Recipe(models.Model):
author = models.ForeignKey(to=User, on_delete=models.CASCADE)
name = models.CharField(max_length=150)
description = models.TextField() # <-- Ingredients, amounts, etc.
【讨论】:
是的,我正在和一位厨师一起工作,他们 100% 都希望数据结构化。以上是关于使用成分、食谱和组件组织 django 食谱应用程序模型的最佳方式的主要内容,如果未能解决你的问题,请参考以下文章