Django QuerySet value() 包含外键字段

Anu*_*TBE 4 django django-queryset

Django 2.2在QuerySet上提供了一个方法values()来将查询集转换为字典

我在我的应用程序中使用相同的

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

new_plan_quota_values = list(new_plan_quota.values())
Run Code Online (Sandbox Code Playgroud)

它生成一个包含PlanQuota模型所有字段的 json 字符串。

模型就像

class PlanQuota(models.Model):
    name = models.CharField()
    quota = models.ForeignKey(Quota)
Run Code Online (Sandbox Code Playgroud)

如何在 json 中添加配额模型的字段?

Oha*_*Lad 5

来自文档: 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', ...))
Run Code Online (Sandbox Code Playgroud)

您需要从计划中显式添加“名称”

顺便说一句,如果您“列出”价值结果。考虑使用values_list过滤器

看这里: https: //docs.djangoproject.com/en/2.1/ref/models/querysets/#values-list