Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
Django 如何使用REST框架从视图中获取JSON对象_Django_Django Rest Framework - Fatal编程技术网

Django 如何使用REST框架从视图中获取JSON对象

Django 如何使用REST框架从视图中获取JSON对象,django,django-rest-framework,Django,Django Rest Framework,我使用django Rest框架,我想获得通过Rest框架和搜索构建的JSON。所以我需要使用empidlong来调用外部JSON请求 e、 g.http://localhost:8000/abc/?search=12 如果你浏览上面的网址你会得到 这是在URL上方调用Rest API时生成的 HTTP 200 OK Allow: GET, POST, HEAD, OPTIONS Content-Type: application/json Vary: Accept [ {

我使用django Rest框架,我想获得通过Rest框架和搜索构建的JSON。所以我需要使用empidlong来调用外部JSON请求

e、 g.
http://localhost:8000/abc/?search=12

如果你浏览上面的网址你会得到

这是在URL上方调用Rest API时生成的

HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

[
    {
        "company": "ABC",
        "plate_no": "1234",
        "project_code": "ABC1234",
        "empidlong": "123456",

    },
]
这是我的代码视图。py

from django.shortcuts import render

# Create your views here.
from rest_framework import viewsets, filters
from .models import getData
from .serializers import CarSerializer
import requests

#def res(requests):
#    res = pd.DataFrame(list(getData.objects.all().values()))

class CarViewSet(viewsets.ModelViewSet):

    #filter_class = getDataFilter
    #filter_backends = (filters.SearchFilter, DjangoFilterBackend)
    #queryset = getData.objects.all()
    #serializer_class = CarSerializer
    queryset = getData.objects.all()
    serializer_class = CarSerializer
    filter_backends = (filters.SearchFilter,)
    __basic_fields = ('plate_no',)
    search_fields = __basic_fields

    def retrieve(self, request, *args, **kwargs):
        instance = self.get_object()
        #serializer = ProfileSerializer(instance=instance)

        serializer = CarSerializer(instance=instance)
        data = serializer.data
        for a in data:
            empid= a['empidlong']
            requests.get('http://192.168.10.32/BASIC%20DATA/GetEmployees/'+empid +'/Y')

        return Response(serializer.data)

    def get_queryset(self):
        queryset = getData.objects.all()
        emp = self.request.query_params.get('emp', None)

        if emp is not None:
            queryset =  queryset.filter(empidlong=emp)

        return queryset
问题是当我运行此代码时requests.get(''+empid)

此URL请求无法工作(未发送获取请求)


提前感谢。

在url中,您好,您没有指定要使用的方法。试试这个

requests.GET.get('http://192.168.10.32/BASIC%20DATA/GetEmployees/'+empid +'/Y')

Django
request
对象和Python
request
库之间可能会有误解,对此深表歉意。请解开国旗的事,我会非常感激的。谢谢。既然你没有修改答案,所以不允许我这么做。你有错误吗?没有,但有时会更改代码,它将返回RuntimeError:超过最大递归深度外部请求的
状态代码是什么?我使用wireshark,发现没有请求到192.168.10.32的数据包。您需要包括实际服务于此的
员工
端点或ModelViewset,以及
URL
端点
CarViewset
肯定不会为员工提供
结果。