[英]Django Rest Framework API POST receiving status code 200 instead 201
I am new to Django and python.我是 Django 和 python 的新手。 I have a website that already in production using docker.
我有一个使用 docker 已经投入生产的网站。 And the API URL is on: http://gmlews.com/api/data .
API URL 开启: http://gmlews.com/api/data 。 When I want to test the API using postman, the GET method working fine, but for the POST method is returned response 200 OK not 201 created.
当我想使用 postman 测试 API 时,GET 方法工作正常,但对于 POST 方法返回响应 200 OK 而不是创建 201。 Because of that, my data can't be saved in the API.
因此,我的数据无法保存在 API 中。
Here is my code for the API:这是我的 API 代码:
restapi/serializers.py: 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: 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:网址.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')),
]
Can someone help me with this issue?有人可以帮我解决这个问题吗? I really don't have an idea why the POST method received status 200. I want it to received status 201 so my data can be saved.
我真的不知道为什么 POST 方法会收到状态 200。我希望它收到状态 201,以便保存我的数据。 Thank you
谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.