【发布时间】:2013-12-30 14:06:12
【问题描述】:
待定的解决方案,但我所看到的是我需要根据此处的文档实际创建一个自定义渲染器 -
http://django-rest-framework.org/api-guide/renderers
我知道这是通过文件“renderers.py”中的 XML 输出中的相同数据进行的,有一个 XMLRenderer
如果我使用下面的示例将“list-item”更改为表/模型名称,我将获得所需的输出,因此我将研究创建自定义渲染器。
我有一个看起来像这样的 json 输出 -
{
"trgmst_id": 224,
"trgjob_id": 22652,
"jobmst_id": 10079,
"trgjob_order": 2,
"trgjob_type": 0,
"trgjob_level": 0
}
但我希望它看起来像这样 -
{
"trgjob": {
"trgmst_id": 224,
"trgjob_id": 22652,
"jobmst_id": 10079,
"trgjob_order": 2,
"trgjob_type": 0,
"trgjob_level": 0
}
}
如何让我的序列化程序或视图包含模型名称?
这是我的序列化器 -
class TrgjobSerializer(serializers.ModelSerializer):
class Meta:
model = Trgjob
这是我的看法 -
@csrf_exempt
def trgjob_detail(request, pk):
"""
Retrieve, update or delete a code snippet.
"""
try:
DEV = Trgjob.objects.using('database1').filter(jobmst_id=pk)
except Trgjob.DoesNotExist:
return HttpResponse(status=404)
if request.method == 'GET':
serializer = TrgjobSerializer(DEV, many=True)
return JSONResponse(serializer.data)
这是 JSONResponse -
class JSONResponse(HttpResponse):
"""
An HttpResponse that renders its content into JSON.
"""
def __init__(self, data, **kwargs):
content = JSONRenderer().render(data)
kwargs['content_type'] = 'application/json'
super(JSONResponse, self).__init__(content, **kwargs)
【问题讨论】:
标签: python django json django-rest-framework