Django模型:链接食谱和跟踪数量

时间:2017-09-21 21:17:25

标签: python django sqlite

问题说明

假设我有一个带有Django前端的多个模型的数据库。

清单中的一个表格。清单包含具有以下规范的条目:

class InventoryItem(models.Model):
    item_name = models.TextField(max_length=10) #apple, orange, cilantro, etc...
    item_quantity = models.DecimalField(...)

下一个模型将描述用这些成分制作的内容

class Product(models.Model):
    product_name = models.TextField(...)
    product_description = models.TextField(...)

ProductItem模型还需要通过指定InventoryItem和使用的库存项目中使用的数量来跟踪从库存中获取的成分。

以前的经验

在以前的经验中,我在使用MySQL的C#中使用了EntityFramework。我实现的方式是使用另一个名为RecipeElement的表/模型,其中每个表/外键都是ProductItem条目的外键。 RecipeElement模型如下所示:

class RecipeElement(models.Model):
    inventory_item = models.ForeignKey(InventoryItem, on_delete = models.CASCADE)
    quantity_used = models.DecimalField(...)
    product_item = models.ForeignKey(ProductItem, on_delete = models.CASCADE)

问题

我在Django中使用这种方法的问题有两个:

  1. 如何检索与RecipeElement条目相关联的ProductItem条目
  2. 用户如何在一个页面上输入RecipeElement条目和ProductItem条目。 (每个RecipeElement的{​​{1}}个数量不受限制,但每个ProductItem只与一个RecipeElement
  3. 相关联

    我目前正在使用SQLite,但计划将来转移到MySQL,如果这会改变任何内容。

1 个答案:

答案 0 :(得分:1)

如果您要检索RecipeElement的所有Product,请执行以下操作:

ProductItem.objects.get(pk=1).recipeelement_set.all()

在第二个问题中,您可以使用recipeElementproduct.add()添加create(),如:

ProductItem.objects.get(pk=1).recipeelement_set.add(your_recipe_element)