json - 从跨外键的 Django 模型创建 JSON 数据
问题描述
我在我的 Django 2 模板中使用 D3 来创建绘图,但我不确定如何最好地创建一个包含来自父模型和子模型的数据的 JSON 对象。例如,这些是我的模型:
class Properties(models.Model):
house_size = models.IntegerField(blank=True, null=True)
class Prices(models.Model):
price = models.IntegerField(default=0)
house =models.ForeignKey(Properties,on_delete=models.CASCADE,default=0)
我知道要从价格创建 JSON 对象,我可以执行以下操作:
statdump = json.dumps(list(Prices.objects.all()), cls=DjangoJSONEncoder)
但是,如果我想创建一个包含 price 和 house_size 的 JSON 对象怎么办。
我可以想出一些低效的方法来解决这个问题,例如遍历模板中的观察结果并在那里创建 JSON 数据,但这似乎不是很有效。有没有办法可以从包含 house_size 和 price 的视图中传递 JSON 对象?
提前致谢
解决方案
尝试使用
from django.db.models import F
from django.core import serializers
objectQuerySet = Prices.objects.all().annotate(house_size = F('house__house_size'))
statdump = serializers.serialize('json', objectQuerySet, fields=('price','house_size'))
[编辑] 如果您想将其返回到模板,请尝试使用:
from django.db.models import F
from django.core import serializers
from django.http import JsonResponse
objectQuerySet = Prices.objects.all().annotate(house_size = F('house__house_size')).values('price','house_size')
return JsonResponse({'jsonObject'=list(objectQuerySet)},safe=False)
推荐阅读
- google-sheets - 持续时间模式给出了错误的值
- python - Discord.py:如何在我的不和谐机器人的丰富存在中添加图像?
- java - SourceDataLine 加倍帧率
- php - opencart javascript重定向到登录删除了额外的GET参数
- node.js - 禁止命令 discord.js
- html - 在正文而不是标题中包含预取链接
- ios - 使用 SwiftUI 成功登录后导航
- python - Python Flask MySQL,UPDATE查询问题
- javascript - JavaScript 和 Livewire Laravel 代码在实时服务器 cPanel 中不起作用
- docker - Docker 作为开发环境 - 多个容器或单个具有多个配置?