Я новичок в Django и python. У меня есть веб-сайт, который уже работает, используя docker. И URL-адрес API находится на: 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, чтобы мои данные можно было сохранить. Спасибо