Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在响应中包括模型名称_Python_Django_Json_Django Rest Framework - Fatal编程技术网

Python 在响应中包括模型名称

Python 在响应中包括模型名称,python,django,json,django-rest-framework,Python,Django,Json,Django Rest Framework,悬而未决的解决方案,但我所看到的是,我需要实际创建一个自定义渲染器,根据这里的文档- 我知道这与“renderers.py”文件中XML输出的数据相同,其中有一个XMLRenderer 如果我更改,使用下面的示例,“list item”作为表/模型名称,我将获得所需的输出,因此我将研究创建自定义渲染器 我有一个json输出,看起来像这样- { "trgmst_id": 224, "trgjob_id": 22652, "jobmst_id": 10079, "

悬而未决的解决方案,但我所看到的是,我需要实际创建一个自定义渲染器,根据这里的文档-

我知道这与“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
  }
}
但我想让它看起来像这样-

{

    "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)

一个选项是在视图中构造所需的输出。比如说

from rest_framework.response import Response


def view(request):
    ...
    serializer = TrgJobSerializer(DEV, many=True)
    response = {'trgjob': serializer.data}
    return Response(response)

JSONRenderer仍将处理JSON的呈现,例如将
False
转换为
False
等。

谢谢!这是迄今为止更加优雅和无缝!正如您在那里所做的那样,默认渲染器完美地拾取了所有内容!