У меня есть набор inspectors
, в каждом из которых есть несколько проектов, над которыми они работают, и за которые платят в зависимости от их pay_rate
.Моя цель - увеличить среднюю ставку заработной платы inspectors
в зависимости от того, в какой компании они работают.Если инспектор работает более чем на одной работе, я хочу использовать его среднее значение pay_rate
.
Следующий код ДОЛЖЕН сделать это, но это не так.
i = InspectorProject.objects.all()
uniques = i.order_by('inspector',
'project__prime_consultant__name').values('inspector',
'project__prime_consultant__name')\
.annotate(pay_rate=Avg('pay_rate'), bill_rate=Avg('bill_rate'))
# the above code works as expected. here's where it gets fishy.
companies = uniques.order_by(.order_by('project__prime_consultant__name')
.values('project__prime_consultant__name')\
.annotate(avg_pay=Avg('pay_rate'), avg_bill=Avg('bill_rate'))\
Последняя строкатам дает мне keyError: 'pay_rate'
на аннотации.Для меня это означает, что вторая аннотация не распознает атрибут / столбец / поле, созданный первой аннотацией.
1) Почему?
2) Как мне обойти это?
Я включаю bill_rate
, чтобы быть тщательным, но проблема явно во второй аннотацииневозможность распознать сгенерированное первое поле.
Заранее спасибо.