Django DRF-自定义字段Json
我在模型中创建了一个自定义字段,用于计算“统计信息” Models.pyDjango DRF-自定义字段Json,django,django-rest-framework,Django,Django Rest Framework,我在模型中创建了一个自定义字段,用于计算“统计信息” Models.py class Risk(models.Model): [...] def risk_completion(self): total = self.controls.count() total_completion = self.controls.filter(status="NP").count() response_data = { 'total_cont
class Risk(models.Model):
[...]
def risk_completion(self):
total = self.controls.count()
total_completion = self.controls.filter(status="NP").count()
response_data = {
'total_controls': total,
'total_controls_planned': total_completion
}
return JsonResponse(response_data)
序列化程序.py
class RiskSerializer(serializers.ModelSerializer):
[...]
total = serializers.CharField(source='risk_completion')
class Meta:
model = models.Risk
fields = (
[...]
'total',
)
但DRF返回:“总计”:“
如果我没有使用JsonResponse(),DRF将返回一个字符串:“total”:“{'total\u controls':3,'total\u controls\u planned':2}”
如何返回“真实”Json
谢谢,
JsonResponse
是用来作为一个视图响应的,所以忘了它吧。
第二种情况返回字符串,因为您的字段是charfield类型,所以它将您的函数返回的字典“强制转换”为字符串
如果你想保留这个结构,你可以用一个替换你的charfield