Django Фильтр модели: необходимо вернуть имя, а не идентификатор внешнего ключа - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь отфильтровать некоторые данные в модели с именем WorkPacket

work_packets_01012017_25032020 = WorkPacket.objects.all()

work_packets_01012017_25032020 = 
work_packets_01012017_25032020.filter(start_date__gte=datetime.date(2017, 1, 1), 
start_date__lte=datetime.date(2020, 03, 25)).values('id', 'number', 'name', 'description', 
'value', 'type', 'status', 'daily_rate', 'creator', 'creation_date', 'closer', 
'closure_date', 'start_date', 'estimated_closure_date', 'estimated_days_overrun', 
'invoice_coding', 'issued_pos', 'purchase_order', 'number_of_days', 
'number_of_billed_days','number_of_remaining_days', 'number_of_over_run_days', 
'effective_daily_rate', 'ahead_behind', 'earnings', 'remaining_earnings', 'reported', 
'projects', 'purchase_order__customer', 'purchase_order__owner')

В этой таблице есть внешний ключ "purchase_order", связанный с другой моделью. В конце возвращенных значений я пытаюсь прикрепить «purchase_order__customer», «purchase_order__owner». Это работает, но возвращает идентификаторы клиента и владельца, а не имя. Как я могу вернуть имена, вместо этого?

Спасибо

1 Ответ

2 голосов
/ 25 марта 2020

Если вы хотите вернуть указанное поле c связанной модели, вы можете использовать следующее:

.values(..., 'purchase_order__customer__name', 'purchase_order__owner__name')
...