2017-05-17 13 views
0

おはよう!Django:2モデルからデータを選択

私は2つのモデルを持っていますが、私は同等のSQLを取得しようとしています。select * from both models where order = xx。少しの援助に感謝:)

class Orders(models.Model): 
    order_id = models.AutoField(primary_key=True) 
    created = models.DateTimeField(auto_now_add=True) 

class ResourcePool(models.Model): 
    email = models.EmailField() 
    item_a = models.CharField() 
    item_b = models.CharField() 
    item_c = models.CharField() 
    order_id = models.ForeignKey(Orders) 

は以下を試してみましたが、それは '受注' モデルからフィールドをinludeしない

ResourcePool.objects.filter(order_id__pk=26).values() 
ResourcePool.objects.filter(order_id__pk=26).select_related().values() 
+0

あなたはどんな問題に直面していますか? – Exprator

+0

注文のデータがありません。* – user1619524

答えて

1
ResourcePool.objects.filter(order_id__pk=26).values('orders__created','email','item_a',item_b','item_c') 

この

+0

外部キーは 'order_id'ですので、' orders__created'ではなく 'order_id__created'になります。 – Alasdair

+0

以下は、他のモデルのフィールドのみを提供しています。テーブル結合のように、両方のモデルのデータが必要です。どうしたらいいですか? ResourcePool.objects.filter(order_id__pk = 26).values( 'order_id__created') 次のエラーアウト ResourcePool.objects.filter(order_id__pk = 26).values( 'order_id__created')select_related() はTypeError:することはできません.values()または.values_list()の後にselect_related()を呼び出す – user1619524

+0

私のans @ user1619524を編集してください。これはあなたが探していたものだと願っています。 – Exprator

0

この

order = Orders.objects.get(pk=26) 
resource=ResourcePool.objects.filter(order_id=order.id).select_related() 
を試してみてください

そしてob "オーダー"のデータを確認してください

id_order_pk26 = resource.order_id.order_id 
created_pk26 = resource.order_id.created 
関連する問題