Django rest framework 如何使用Django Rest框架从外部http请求json和内部数据库创建视图

Django rest framework 如何使用Django Rest框架从外部http请求json和内部数据库创建视图,django-rest-framework,Django Rest Framework,我需要使用请求和内部数据库组合外部json,但条件是当有人调用API时,我们需要从模型中获取empidlong,以便从特定URL调用外部API,然后外部API将返回json,我需要将此json与Django REST API框架创建的json合并 这是我的密码 models.py: from django.db import models import requests from django.core.files import File from urllib import request i

我需要使用请求和内部数据库组合外部json,但条件是当有人调用API时,我们需要从模型中获取empidlong,以便从特定URL调用外部API,然后外部API将返回json,我需要将此json与Django REST API框架创建的json合并

这是我的密码

models.py:

from django.db import models
import requests
from django.core.files import File
from urllib import request
import os


# Create your models here.
class getData(models.Model):
    company = models.CharField(max_length=150)
    description = models.CharField(max_length=150)
    period = models.CharField(max_length=150)
    plate_no = models.CharField(max_length=150, primary_key=True)
    project_code = models.CharField(max_length=150)
    costcenter = models.CharField(max_length=150)
    empidlong = models.CharField(max_length=150)

    class Meta:
        db_table = 'car_information'
序列化程序.py

from rest_framework import serializers
from .models import getData


class CarSerializer(serializers.ModelSerializer):
    class Meta:
        model = getData
        fields = "__all__"
from django.shortcuts import render

from rest_framework import viewsets, filters
from .models import getData
from .serializers import CarSerializer

import requests


class CarViewSet(viewsets.ModelViewSet):
    queryset = getData.objects.all()
    serializer_class = CarSerializer
    filter_backends = (filters.SearchFilter,)
    #search_fields = ('plate_no')
    __basic_fields = ('plate_no',)
    search_fields = __basic_fields

    serializer = CarSerializer(queryset, many=True)
    data = serializer.data
    for a in data: 
        empid= a['empidlong']
        r = requests.get('http://192.168.10.32/Employees/'+empid)


    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
视图.py

from rest_framework import serializers
from .models import getData


class CarSerializer(serializers.ModelSerializer):
    class Meta:
        model = getData
        fields = "__all__"
from django.shortcuts import render

from rest_framework import viewsets, filters
from .models import getData
from .serializers import CarSerializer

import requests


class CarViewSet(viewsets.ModelViewSet):
    queryset = getData.objects.all()
    serializer_class = CarSerializer
    filter_backends = (filters.SearchFilter,)
    #search_fields = ('plate_no')
    __basic_fields = ('plate_no',)
    search_fields = __basic_fields

    serializer = CarSerializer(queryset, many=True)
    data = serializer.data
    for a in data: 
        empid= a['empidlong']
        r = requests.get('http://192.168.10.32/Employees/'+empid)


    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
我不知道怎么做。我坚持了一个星期。
提前感谢。

您希望json来自哪里?如果来自用户,则可以从请求访问json。然后可以在orm查询中使用它。您的车视图集似乎做得比它应该做的更多。您的目标到底是什么?

您希望json来自哪里?如果来自用户,则可以从请求访问json。然后可以在orm查询中使用它。您的车视图集似乎做得比它应该做的更多。您的具体目标是什么?

我需要显示来自getData模型的合并API和来自
192.168.10.32
ip的JSON没有任何内容。我需要显示来自getData模型的合并API和来自
192.168.10.32
ip的JSON没有任何内容。