1

django ORM を使用して、条件付きで関連モデルを集約するクエリを作成する方法を知っている人はいますか?

たとえば、商品を販売するサイトを運営していて、各従業員が過去 7 日間にどれだけ販売したかを知りたいとします。すべての売上に対してこれを行うのは簡単です。

q = Employee.objects.filter(type='salesman').annotate(total_sales = models.Sum('sale__total'))

従業員モデルと販売モデルが多対多の関係にあると仮定します。では、これを過去 7 日間 (または任意の時間枠) のすべての売上に制限するにはどうすればよいでしょうか? 誰か知っていますか?

4

1 に答える 1

2

わかりました、私はこれをあまり考えていなかったと思います。フィルターが左結合で物事を処理していることに気づきませんでした (それについて考えてみると、他にどのように db にマップされるでしょうか?) ので、明らかな答えは次のとおりです。

Employee.objects.filter(type='salesman').filter(sale__timestamp__gte = start_date)\
        .exclude(sale__timestamp__gte = end_date).annotate(...
于 2009-06-09T20:08:05.097 に答える