2017-06-21 4 views
-1

からの更新複数のモデルは、私は、この三つのクラスジャンゴ - つのビュー(フォーム表)

class Product(models.Model): 
    name  = models.CharField(max_length=50) 

class Input(models.Model): 
    idProduct = models.ForeignKey('Product', on_delete=models.CASCADE) 
    quantity = models.IntegerField() 
    price  = models.DecimalField(max_digits=5, decimal_places=2) 
    created_at = models.DateTimeField(auto_now=True) 

class Output(models.Model): 
    idProduct = models.ForeignKey('Product', on_delete=models.CASCADE) 
    quantity = models.IntegerField() 
    created_at = models.DateTimeField(auto_now=True) 

を持っていると私はこの

| output-quantity->product | product-name | input-quantity->product | 

リストのようなテーブルとビュー/フォームを作るためにwhantすべての製品をDBから取り出し、各製品(入力または出力)の数量を追加します。

次に、入力と出力を合計してから、各製品の在庫レコードを取得するためにそれらを減算します。

私の問題は、あなたがしなければならないすべてはあなたが続いていて(このようにそれらをインポートしている私はビューで同時に三つのモデルを使用する方法を理解していない/ビューでモデルにアクセスするには

+0

これまでに何を試みましたか?あなたのビューコードを表示してください。 – Soviut

+0

あなたはここであなたの意見を共有することができます – Cadmus

+0

私はそれを行う方法がわかりません。 私は理解今 '選択product.name、 SUM(input.quantity)だと思う入力 いただきありがとうございます、私は同じビュー –

答えて

0

を形成していますDjango構造):from .models import Product, Input, Output。これで、モデルにアクセスできます。

Products.objects.all()などの関数を使用して、必要なデータを取得します。たとえば、データベースに保存されているすべてのProductオブジェクトが返されます。 Djangoのクエリの詳細については、こちらをご覧ください:https://docs.djangoproject.com/en/1.11/topics/db/queries/

+0

に複数のモデルを使用するネット上の例を見つけることができませんでした - 製品 \tからストック としてSUM(output.quantity)は \t(product.id = input.idProduct)上で入力を結合副産物product.name 順序によって(product.id = output.idProduct) 基ON出力を結合します。名前 ' 私はこのSQLをdjango ormに翻訳する必要があります。 軽微な問題の理解:select_related、annotate、aggregate –

+0

基本的なフィルタとステートメントを使用して、SQLを分割して簡単にアプローチすることができます。 Select_relatedは外部キーをあらかじめ準備しておくため、外部キーにアクセスするときに再クエリする必要がないため、パフォーマンスが向上します。 –

関連する問題