Python Json响应中不包括注释结果
我想根据模型计算投票数,当我在Django shell中测试此查询时,它工作正常,但当作为json传递时,当我得到json响应时,我看不到total_vows列Python Json响应中不包括注释结果,python,django,django-orm,Python,Django,Django Orm,我想根据模型计算投票数,当我在Django shell中测试此查询时,它工作正常,但当作为json传递时,当我得到json响应时,我看不到total_vows列 class Model(models.Model): title = models.CharField(max_length=255, null=False, blank=False) description = models.TextField(null=False, blank=False) class Mod
class Model(models.Model):
title = models.CharField(max_length=255, null=False, blank=False)
description = models.TextField(null=False, blank=False)
class ModelVote(models.Model):
model = models.ForeignKey(Model, on_delete=models.CASCADE)
vote = models.BooleanField()
created_at = models.DateTimeField(auto_now_add=True)
这是序列化框架的已知限制
下面的查询解决了我的总投票数不能作为Json响应通过的问题。只需添加
.values()
就行了
Model.objects.annotate(总投票数=计数('modeldovate')).values()
返回JsonResponse({'models':list(models)},status=200)
from django.core.serializers import serialize
class ModelList(View):
def get(self, *args, **kwargs):
models = Model.objects.annotate(total_votes=Count('modelvote'))
return HttpResponse(serialize("json", models), content_type='application/json')