简体   繁体   English

Django Rest 框架 API POST 接收状态码 200 而不是 201

[英]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谢谢

Acessed your site and did a post.访问您的网站并发布了一个帖子。 It returned a 201. Follow is the evidence:它返回了 201。以下是证据:

在此处输入图像描述

If you access you data, the item with id 15 was created by me, and the current response for that POST was a 201.如果您访问您的数据,则 ID 为 15 的项目是由我创建的,并且该POST的当前响应是 201。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 测试Post API接收状态码200而不是201 - test for post API receiving status code 200 instead of 201 获取200状态代码而不是201或204 - Getting 200 status code instead of 201 or 204 Django API 测试:预期状态代码 200,而不是收到 301 - Django API test: expected status code 200, instead received 301 Python Flask Web服务器未收到JSON Ajax POST请求,服务器返回HTTP 200 OPTIONS而不是201 POST - Python Flask webserver not receiving JSON ajax POST requests, server returns HTTP 200 OPTIONS instead of 201 POST Python json POST请求状态为200,而预期状态为201 - Python json POST request status 200 while expecting status 201 为什么在我的帖子请求中得到返回码 200 而不是 201? (Python/请求/Json) - Why did I get return code 200 instead of 201 on my post request ? (Python /Requests/Json) 如果django rest框架的响应代码为201(成功创建),则调用其他方法 - call other methods if django rest framework's response code is 201 (successfully created) Django rest框架:单元测试发布请求获取状态码400 - Django rest framework: Unit testing post request gets status code 400 Django Rest 对 api 帖子的框架评论 - Django Rest Framework comment on post api Django rest框架返回创建的201,但是数据库中没有任何更改 - Django rest framework returns 201 created, but nothing is changed in the DB
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM