2012-01-25 6 views
0

私はprovidersのクエリセットを持っている:Djangoのクエリ使用してOR

>>> provider_qs = Provider.objects.filter(...) 
[<Provider: Gin Investors>, <Provider: IND INVESTORS>] 

これらのプロバイダのためのすべての財務諸表を取得するためのクエリでしょうか?何かのように -

>> fs = FinancialStatement.objects.filter(provider__in provider_qs) 

答えて

2

はい、あなたは簡単に行うことができます。

fs = FinancialStatement.objects.filter(provider__in=provider_qs) 

Djangoは1つのSQLクエリにこれを最適化します。例はDjango QuerySet documentationでは、このために、正確にあります:

inner_qs = Blog.objects.filter(name__contains='Cheddar') 
entries = Entry.objects.filter(blog__in=inner_qs) 
0

あなたは1行で行うことができます。

fs = FinancialStatement.objects.filter(provider__whatever__more='asd') 

またはMitarの答えからの例を使用して:

entries = Entry.objects.filter(blog__name__contains='Cheddar') 

Django querysetsについてもっと読むべきです。

関連する問題