【发布时间】:2020-11-10 03:45:58
【问题描述】:
通过 Django Rest Framework 端点发布时,我总是将数据写入数据库。这次我想处理接收到的数据并将其发送到其他地方而不写入数据库。我从ModelViewSet 切换到ViewSet,我可以发出 GET 请求 OK,但是当我通过 DRF URL curl 或 POST 时收到 Bad Request 400。这是一个有效的最小代码(消除了对身份验证等的需要):
- urls.py
from django.urls import path, include
from .views import ContactView
from rest_framework import routers
router = routers.DefaultRouter()
router.register('message', ContactView, basename='message')
urlpatterns = [
path('', include(router.urls)),
]
- serializers.py
from rest_framework import serializers
class ContactSerializer(serializers.Serializer):
text = serializers.CharField(max_length=250)
- views.py
from rest_framework.response import Response
from .serializers import ContactSerializer
from rest_framework import viewsets
class ContactView(viewsets.ViewSet):
def list(self, request):
return Response('Got it')
def create(self, request):
serializer = ContactSerializer(data=request.data)
if serializer.is_valid():
return Response(serializer.data)
else:
return Response('Invalid')
非常感谢您的建议。
【问题讨论】:
标签: python django rest django-rest-framework django-rest-viewsets