Как получить объект JSON из вида, используя каркас REST - PullRequest
0 голосов
/ 11 марта 2019

Я использую django Rest Framework, и я хочу получить JSON, который собирает Rest Framework и используя поиск. Поэтому мне нужно использовать empidlong для вызова за пределами JSON-запроса.

например. http://localhost:8000/abc/?search=12

если вы зайдете выше URL, вы получите

Это делается из Rest API при вызове выше URL

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

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

    },
]

Это мой код views.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

Проблема в том, что я запустил этот код reports.get ('http://192.168.10.32/GetEmployees/'+empid)

Этот URL-запрос не работает (не отправлять запрос на получение)

Спасибо заранее.

1 Ответ

0 голосов
/ 11 марта 2019

Здравствуйте, в URL вы не указываете метод, который вы хотите использовать.Попробуйте это для примера

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