我看了很多问题,但没找到任何我想要的东西。如果我错过了类似的问题,我会道歉。
以下是我正在尝试构建(并遇到问题)的基本概要。我正在制定膳食计划,其中膳食由菜肴组成......菜肴由成分(食品加上数量)组成,然后是实际食品,如杏仁,水,菠菜等。
这方面的一个例子是早餐...它由两种菜肴组成:(1)谷物和(2)咖啡......谷物的菜肴由成分组成(1)牛奶与200g和(2)含200g谷物。
我有食物模型,菜肴模型,成分模型&&允许我构建它的膳食模型。
以下是我的想法(缩写)的模型:
class Food(models.Model):
name = models.CharField(max_length=128)
class Dish(models.Model):
name = models.CharField(max_length=128)
instructions = models.TextField()
food = models.ManyToManyField(Food, through='Ingredient')
class Ingredient(models.Model):
food = models.ForeignKey(Food, on_delete=models.CASCADE)
dish = models.ForeignKey(Dish, on_delete=models.CASCADE)
quantity = models.CharField(max_length=128)
class Meal(models.Model):
user = models.ForeignKey(User, default=1)
name = models.CharField(max_length=128)
dishes = models.ManyToManyField(Dish)
time = models.DateTimeField(default=now, blank=True)
通过这些以及适当的admin.py设置,我可以创建一个食品......然后我可以创建一个菜,我选择一个食品并输入数量......然后我可以添加这些菜肴到餐。
HOWEVER ,(抱歉很长的帖子)...这是我的问题: 我想根据模板菜肴制作每道菜中含有特定数量食物的食物...例如草莓冰沙可以含200克草莓和200克牛奶。
现在,当有人建立一顿饭时,他们可以选择“草莓冰沙”作为菜肴,但我需要他们才能更新特定餐点的数量。因此,如果他们只有100克草莓,那么他们应该只能为他们的用餐进行编辑。下次他们做饭并选择“草莓冰沙”时,它将再次默认为200克。
我无法弄清楚如何设置我的模型和管理员来实现此目的,因为有人需要在制作餐时选择一道菜,然后动态地将这些成分显示为默认值,并且可以编辑并保存他们自己的实例。
我希望这是有道理的......感谢任何建议!
(澄清) 我希望通过以下描述更清楚:
我正在创建一个模板(菜肴),我想在管理表单中动态显示(用于创建一顿饭)。
菜是一种模板(基本上推荐配方),由成分及其含量组成。例如,草莓冰沙的模板菜将是200克牛奶&& 200克草莓。
当有人创造一顿饭时,他们将能够选择并添加尽可能多的菜肴模板。但是,由于这些菜模板只是模板......我需要它们才能编辑特定餐点的数量和成分。
例如,我创造一顿饭,我称之为早餐。在这顿饭中,我选择了(1)炒鸡蛋和&& (2)草莓冰沙。当有人选择这些菜肴时,我希望这些菜肴及其成分能够出现并可编辑。因此,当我选择草莓冰沙时,我会得到200g牛奶和&&amp ;;的成分列表。 200克草莓......但在我特定的一餐中,我想加入100克蓝莓并加入250克牛奶。通过这种方式,我基本上可以导入菜肴的模板,然后在我认为适合我的用餐时进行编辑。