2017-09-21 11 views
0

量の追跡問題説明ジャンゴモデル:レシピをリンクと

私はDjangoのフロントエンドで実行されている複数のモデルを使用してデータベースを持っていると仮定する。

インベントリ内のテーブルの1つ。在庫は、次の仕様のエントリで構成されています

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

次のモデルがProductItemモデルはまた、から取られた食材を追跡する必要があり、これらの成分

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

で作られているかを説明することになります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) 

問題

ジャンゴでそのアプローチと私の問題は2つあり:

  1. 私はProductItemに関連付けられているRecipeElementエントリを取得する方法をエントリ
  2. ユーザはどのようにRecipeElementエントリとエントリを入力しますか1ページにのエントリ。 (各ProductItemについてRecipeElement Sの数は限定されないが、各RecipeElementは一つだけProductItem

に関連付けられている私は一瞬のSQLiteを使用していますが、それが何かを変更した場合、将来的にMySQLへの移転を計画しています。あなたがを追加することができます第二の問題では

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

:あなたが取得したい場合は

+0

:よう.add()またはcreate()を使用してproductから0? –

+0

多かれ少なかれ。理想的には、ユーザーは新しいProductItemを追加し、すべてのRecipeElementを1つのビューで指定することができます。@MauricioCortazar – robotHamster

+1

オブジェクトを取得して、 '.add(your productductemhere)'を使用することができます。 –

答えて

1

はすべてProductためRecipeElementのような何かを行いますあなたは `ProductItem`で新しい` recipeElement`を追加したい第二の問題で

ProductItem.objects.get(pk=1).recipeelement_set.add(your_recipe_element) 
関連する問題