2016-09-05 16 views
0

次のクエリーセットでは、when節に追加および/または条件を付けたいのですが、構文エラーが発生します。 単一のクエリーセットで実行することは可能ですか、分割する必要がありますか?Django集約、AND/OR演算子の使用時の条件

Game.objects.prefetch_related('schedule').filter(Q(team_home_id=625) | Q(team_away_id=625), schedule__date_time_start__lte=timezone.now()) 
    .aggregate(
    wins=Sum(Case(When(
     score_home__gt=F('score_away') & team_home_id=625 | 
     score_away__gt=F('score_home') & team_away_id=625, then=1), 
     default=0, output_field=IntegerField() 
    )), 
) 

答えて

1

あなたは複雑な条件を使用しているとき(あなたがfilterでやったように)Qオブジェクトを使用する必要がdocsによります。例:

When(Q(name__startswith="John") | Q(name__startswith="Paul"), then='name') 
+0

これは速かった:D、あなたは正しい。 – Pietro