我在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)
我知道要从Price创建一个JSON对象,我可以执行以下操作:
statdump = json.dumps(list(Prices.objects.all()), cls=DjangoJSONEncoder)
但是,如果我想创建一个包含price和house_size的JSON对象,该怎么办?
我可以想到解决此问题的效率低下的方法,例如遍历模板中的观察结果并在其中创建JSON数据,但这似乎不是很有效。有没有一种方法可以从包含house_size和price的视图传递JSON对象?
预先感谢
答案 0 :(得分:0)
尝试使用
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)