【发布时间】:2020-07-16 22:28:18
【问题描述】:
我已经设置了一个基于类的视图来处理所有请求
- views.py
#Imports
from django.shortcuts import render
from .serializers import UserSerializer
from rest_framework import viewsets
from django.contrib.auth.models import User
from rest_framework.decorators import api_view
from django.http import HttpResponseForbidden
from rest_framework.response import Response
from rest_framework import status
#Imports End
class UserApiView(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
def get(self, request, format=None):
raise HttpResponseForbidden("Get Requests are not allowed here")
def post(self, request, format=None):
if request.is_ajax():
serializer = UserSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
else:
raise HttpResponseForbidden("You are not allowed to acess this page")
- 这是序列化程序类( serializers.py )
from rest_framework import serializers
from django.contrib.auth.models import User
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ['username','email','password']
- urls.py 正在被 DefaultRouter() 处理
from django.urls import include, path
from rest_framework import routers
from .views import UserApiView
router = routers.DefaultRouter()
router.register(r'user',UserApiView,basename="takis")
urlpatterns = [
path('', include(router.urls)),
]
我希望后端像帖子中所说的那样处理视图并获取请求方法,但它们似乎没有被执行。
我可以正常访问 url ,没有被禁止的错误,它接受请求,即使它们不是 ajax。
【问题讨论】:
标签: json django ajax http django-rest-framework