【问题标题】:Specifying Units in Django在 Django 中指定单位
【发布时间】:2013-08-09 18:55:47
【问题描述】:

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

例如:

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

这里是models.py:

从 FoodList.models 导入食物,重量

类成分(models.Model):

food = models.ForeignKey(Food)
重量 = 模型.ForeignKey(重量)
数量 = models.FloatField(default=1.0)

...

类配方(models.Model):

ingredients = models.ManyToManyField(Ingredient, blank=True, null=True)

...

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

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

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

【问题讨论】:

    标签: django django-models foreign-keys many-to-many


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-05
      • 1970-01-01
      • 2015-05-30
      • 2020-12-14
      • 2013-01-12
      • 2017-01-11
      相关资源
      最近更新 更多