0

我正在创建一个小应用程序,它基本上计算食谱中的卡路里。我很想知道是否有更好的方法来做到这一点。每个食谱都有成分。每种成分都有数量、重量和卡路里分布。

例如:

  • 食谱:无面粉花生酱蛋糕
    • 成分:鸡蛋
      • 数量:4
      • 重量:大鸡蛋(可以是杯子或盎司或其他)
      • 卡路里:312(基本上由数量 * 重量计算)
    • 成分:花生酱
      • 数量:8.5
      • 重量:盎司
      • 卡路里:850

这是models.py:

从 FoodList.models 进口食品,重量

类成分(models.Model):

food = models.ForeignKey(Food)
weight = models.ForeignKey(Weight)
amount = models.FloatField(default=1.0)

...

类食谱(模型。模型):

成分=模型。ManyToManyField(成分,空白=真,空=真)

...

问题是每次我想用不同数量的鸡蛋制作新食谱时,我首先必须制作含有正确数量鸡蛋的新配料。所以我有一种成分是“4 个大鸡蛋”,另一种成分是“2 个大鸡蛋”。

我目前在我的管理员中使用内联来查看所有内容,但它仍然看起来相当麻烦,并且可能有更好的方法。

有什么方法可以让我在配方下做所有事情,而不是在配料中做中间步骤?

4

1 回答 1

0

从成分模型中删除数量字段,并创建一个新模型,如下所示:

class Amount(models.Model):
    units = model.IntegerField(default=1)
    ingredient = models.ForeignKey(Ingredient)
    recipe = models.ForeignKey(Recipe)

只要您将数量与成分模型分开,您就可以将所有成分放入其中,然后使用每个配方的“单位”字段跟踪数量。

于 2013-08-09T21:32:04.343 回答