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())
会生成一个包含 PlanQuota 模型的所有字段的json字符串。
模型就像
class PlanQuota(models.Model):
name = models.CharField()
quota = models.ForeignKey(Quota)
如何在json中添加 Quota 模型的字段?
答案 0 :(得分:0)
从文档中: 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
答案 1 :(得分:-1)
您可以使用__
作为值中的字符串参数来添加当前模型拥有的所需字段以及相关模型拥有的相关字段。
您还可以使用F
为相关字段设置别名,如下所示。
from django.db.models.expressions import F
new_plan_quota_values = list(new_plan_quota.values('name', field_alias=F('quota__field')))