为菜谱创建Django模型



我正在尝试创建一个食谱数据库的Django模型。我在编写一个模型时遇到了麻烦,该模型将考虑到可变数量的成分(不是每个食谱都有相同数量的成分)。以下是目前为止的内容:

class Recipe(models.Model):
'''A recipe class to input new recipes'''
recipe = models.CharField(max_length=50)
ingredient = models.ForeignKey(Ingredient, null=True, on_delete=models.SET_NULL)
quantity = models.CharField(max_length=1)
cuisine = models.ForeignKey(Cuisine, null=True, on_delete=models.SET_NULL)
def __str__(self):
return self.recipe

我卡住了,试图找出如何将一个食谱与数据库中的多个成分相关联。现在,我只制作了一种原料。外键用于其他已创建的类,这些类描述单独的食材和菜系。

这里有两个解决方案:

  1. 将外键放到配料类中:

    class Ingredients(models.Model):
    ...
    recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
    

    这将每个食材与一个食谱关联起来,并允许每个食谱有多个食材。

  2. 在配方中使用ManyToManyField:

    class Recipe(models.Model):
    ...
    ingredients = models.ManyToManyField(Ingredient)
    

    这允许您将相同的成分添加到多个食谱中,每个食谱有多个成分。

最新更新