我正在创建一个小应用程序,它基本上计算食谱中的卡路里。我很想知道是否有更好的方法来做到这一点。每个食谱都有成分。每种成分都有一定的量,重量和卡路里含量。
例如:
这是models.py:
来自FoodList.models的导入食物,重量
类成分(models.Model):
food = models.ForeignKey(Food)
weight = models.ForeignKey(Weight)
amount = models.FloatField(默认值= 1.0)...
class Recipe(models.Model):
成分= models.ManyToManyField(成分,空白=真,空=真)
...
问题在于每次我想用不同数量的鸡蛋制作新配方时,我首先要制作一种含有正确蛋量的新配料。所以我有一种成分说“4个大蛋”,另一种成分说“2个大蛋。”
我目前正在管理员中使用内联来查看所有内容,但它看起来仍然相当繁琐,并且可能有更好的方法。
有什么方法可以在配方下做所有事情而不是成分中的中间步骤?
答案 0 :(得分:0)
从Ingredients模型中删除金额字段,然后创建一个新模型:
class Amount(models.Model):
units = model.IntegerField(default=1)
ingredient = models.ForeignKey(Ingredient)
recipe = models.ForeignKey(Recipe)
只要您将数量与成分模型分开,您就可以将所有成分放入其中,然后使用每个配方的“单位”字段跟踪数量。