0
私は1日の総収入を計算しようとしています。各DailyTotalには、販売されたアイテムの数(items_sold)と、その日に販売された価格(items_price)が含まれます(すべてのアイテムは、同じ価格で終日販売されます)。その部分は機能していますが、今はその日/国の為替レートでその値を乗算する必要があります。AnnotateとSumの中でDjango Subqueryを使用する方法
rate = ExchangeRate.objects.filter(
date=OuterRef('date'),
country=OuterRef('country')))
calc_with_rate = Sum(F('items_sold') * F('items_price') * Subquery(rate.values('rate')), output_field=FloatField(),)
results = DailyTotal.objects.filter(**query_filters).annotate(
revenue=calc_with_rate)
が、私は得る:
unsupported operand type(s) for +=: 'int' and 'NoneType
私はrate.values( '率')はint型を返すされていないので、それがあると仮定し... が、私は
rate.values('rate')[0]
を行うことはできません
またはIを取得:
This queryset contains a reference to an outer query and may only be used in a subquery.
ので、Iこのクエリを完了する方法がわからないのですか?