RawQuerySet - столбцы таблицы псевдонимов не приходят в ответ - PullRequest
0 голосов
/ 03 мая 2019

Вот код

query = 'SELECT  policy_agreement.*, policy.* from policy_agreement INNER JOIN policy ON policy_agreement.policy_id=policy.id WHERE policy.policy_parent_id IN (12,16,18,46) AND status=1'
policy_agreements = list(PolicyAgreement.objects.raw(query))

Я получаю столбцы только в таблице policy_agreement, но не получаю столбцы таблицы политики.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 03 мая 2019

Вы можете выполнить весь запрос в Django ORM.Двойное подчеркивание __ используется для доступа к свойствам связанных полей в вызовах БД.

qs = PolicyAgreement.objects.select_related("policy")
qs = qs.filter(policy__policy_parent_id__in=(12,16,18,46), status=1)
0 голосов
/ 03 мая 2019

Для получения связанных объектов добавьте .select_related("policy")

Сначала вы делаете это так:

q=PolicyAgreement.objects.select_related("policy")

OR

q=policy.objects.select_related("PolicyAgreement")

согласно вашей потребности

затем распечатайте запрос, чтобы увидеть необработанный запрос

print(q.query)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...