Значения Django QuerySet () включают поле ForeignKey - PullRequest
0 голосов
/ 03 июня 2019

Django 2.2 предоставляет метод values ​​() в QuerySet для преобразования набора запросов в словарь

В моем приложении используется то же, что и

new_plan_quota = PlanQuota.objects.filter(
    **filter_query
).select_related('quota')

new_plan_quota_values = list(new_plan_quota.values())

, которая генерирует строку json, содержащую все поля PlanQuota модель.

Модель похожа на

class PlanQuota(models.Model):
    name = models.CharField()
    quota = models.ForeignKey(Quota)

Как добавить поля Квота модель также в JSON?

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

Вы можете добавить нужные поля, принадлежащие текущей модели, и связанные поля, принадлежащие связанной модели, используя __ в качестве строковых параметров в значениях.

Также вы можете установить псевдоним для связанных полей, используя F, как показано ниже.

from django.db.models.expressions import F
new_plan_quota_values = list(new_plan_quota.values('name', field_alias=F('quota__field')))
0 голосов
/ 03 июня 2019

Из документов: https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.values

что-то вроде этого:

new_plan_quota_values = list(new_plan_quota.values('name', 'quota__field1', 'quota__field2', ...))

вам нужно явно добавить «имя» из PLAN

Кстати, если вы«список» значений результатов.рассмотрите возможность использования фильтра values_list

посмотрите здесь: https://docs.djangoproject.com/en/2.1/ref/models/querysets/#values-list

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