Django Rest Framework API POST接收状态码200代替201

时间:2020-05-07 03:13:06

标签: python django rest django-rest-framework

我是Django和python的新手。我有一个已经在使用docker生产的网站。 API URL处于:http://gmlews.com/api/data。当我想使用邮递员测试API时,GET方法工作正常,但对于POST方法,返回的响应不是200 OK,而是创建201。因此,我的数据无法保存在API中。

这是我的API代码:

restapi / serializers.py:

from .models import Data,Node
from rest_framework import serializers


class DataSerializer(serializers.ModelSerializer):
   class Meta:
    model = Data
    fields = '__all__'


class NodeSerializer(serializers.ModelSerializer):
   class Meta :
    model = Node
    fields = '__all__'

restapi / views.py:

import json
from django.views.generic import View
from django.shortcuts import render
from rest_framework import routers, serializers, viewsets
from rest_framework.response import Response
from restapi.serializers import DataSerializer, NodeSerializer
from restapi.models import Data, Node
from django_filters.rest_framework import DjangoFilterBackend
from django.http import HttpResponse
from rest_framework.views import APIView
# Create your views here.


class DataViewSet(viewsets.ModelViewSet):
    queryset = Data.objects.all()
    serializer_class = DataSerializer
    filter_backends = [DjangoFilterBackend]
    filterset_fields = ['node_id']


class MapViewSet(viewsets.ModelViewSet):
    queryset = Data.objects.filter(node_id=1).order_by('-id')[:1]
    serializer_class = DataSerializer


class NodeViewSet(viewsets.ModelViewSet):
    queryset = Node.objects.all()
    serializer_class = NodeSerializer

urls.py:

from django.contrib import admin
from django.contrib.auth import views as auth_views
from django.urls import include, path
from restapi import views
""" for routers api root"""
from restapi.models import Data, Node
from rest_framework import routers
from restapi.views import DataViewSet, NodeViewSet, MapViewSet

router = routers.DefaultRouter()

router.register(r'data', DataViewSet, 'data')

router.register(r'node', NodeViewSet, 'node')

router.register(r'map', MapViewSet, 'map')


urlpatterns = [
path('admin/', admin.site.urls),
path(r'api/', include(router.urls)),
path(r'', include('rest_framework.urls', namespace='rest_framework')),

]

有人可以帮助我解决这个问题吗?我真的不知道为什么POST方法接收状态200。我希望它接收状态201,以便可以保存我的数据。谢谢

0 个答案:

没有答案
相关问题