【问题标题】:django rest framework post method giving error "Method "POST" not allowed"django rest 框架发布方法给出错误“不允许方法“POST””
【发布时间】:2015-09-19 15:21:19
【问题描述】:

我在运行 api 时收到错误“不允许使用方法“POST””。我是 DRF 的新手,不知道我做错了什么。 GET 方法工作正常。我对 POST 方法有疑问。

我的代码如下

view.py:

 from django.contrib.auth.models import User
 from django.http import Http404
 from django.shortcuts import get_object_or_404
 from restapp.serializers import UserSerializer
 from rest_framework.views import APIView
 from rest_framework.response import Response
 from rest_framework import status
 from django.http import HttpResponse

 class UserList(APIView):
  def get(self, request, format=None):
    users = User.objects.all()
    serializer = UserSerializer(users, many=True)
    return Response(serializer.data)

 def post(self, request, format=None):
    serializer = UserSerializer(data=request.data)
    if serializer.is_valid():
        serializer.save()
        return Response(serializer.data, status=status.HTTP_201_CREATED)
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

serializer.py:

 from django.contrib.auth.models import User
 from .models import Question,Choice
 from rest_framework import serializers

 class UserSerializer(serializers.ModelSerializer):
class Meta:
    model = User
    fields = ('id', 'username', 'first_name', 'last_name', 'email')

url.py

 from django.conf.urls import patterns, include, url
 from django.contrib import admin

 from restapp import views

 admin.autodiscover()


 urlpatterns = patterns('',
     url(r'^admin/', include(admin.site.urls)),
     url(r'^users/', views.UserList.as_view()),)

【问题讨论】:

    标签: python django django-rest-framework


    【解决方案1】:

    您的代码缩进不当。 post 方法需要在UserList(APIView) 类中。现在被定义为一个独立的函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-26
      • 1970-01-01
      • 2019-10-22
      • 2019-05-04
      • 2021-09-07
      • 2021-04-05
      相关资源
      最近更新 更多