Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我是Django Rest_框架的新手。我正在尝试实现一个基于函数的视图,但在使用put方法时遇到了问题_Python_Django_Django Rest Framework - Fatal编程技术网

Python 我是Django Rest_框架的新手。我正在尝试实现一个基于函数的视图,但在使用put方法时遇到了问题

Python 我是Django Rest_框架的新手。我正在尝试实现一个基于函数的视图,但在使用put方法时遇到了问题,python,django,django-rest-framework,Python,Django,Django Rest Framework,我想知道如何访问给定特定ID的特定对象,然后更新它。我目前得到405方法不允许的错误 如上所述,是否可以通过ID访问对象,或者我必须以不同的方式处理问题 我的代码目前如下: views.py from rest_framework import status from rest_framework.decorators import api_view from rest_framework.response import Response from home.models import exam

我想知道如何访问给定特定ID的特定对象,然后更新它。我目前得到405方法不允许的错误

如上所述,是否可以通过ID访问对象,或者我必须以不同的方式处理问题

我的代码目前如下:

views.py

from rest_framework import status
from rest_framework.decorators import api_view
from rest_framework.response import Response
from home.models import example
from home.serializers import exampleSerializer

@api_view(['GET', ])
def exampleview(request):
    try:
        ex=example.objects.all()
    except example.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)

    if request.method=="GET":
        serializer=exampleSerializer(ex, many=True)
        return Response(serializer.data)

@api_view(['PUT', ])
def exampleputview(request):
    try:
        ex1=example.objects.get(id=id)
    except example.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)

    if request.method=="PUT":
        serializer=exampleSerializer(ex1, data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data)
        return Response(status=status.HTTP_404_NOT_FOUND)

urls.py
from django.contrib import admin
from django.conf.urls import url
from home import views

urlpatterns = [
    url('admin/', admin.site.urls),
    url('home/',views.exampleview),
    url('home/<int:id>/',views.exampleputview),
]

PUT方法需要一个id值,正如您在URL中提到的

尝试将id放入函数参数中

@api_view(['PUT', ])
def exampleputview(request, id):
    try:
        ex1=example.objects.get(id=id)
    except example.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)

    if request.method=="PUT":
        serializer=exampleSerializer(ex1, data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data)
        return Response(status=status.HTTP_404_NOT_FOUND)

下面的答案应该有用,或者显示你的邮递员形象