【发布时间】:2015-09-12 21:42:59
【问题描述】:
我正在使用 django-rest-framework 制作JSON-API。目前 API 适用于 GET 和 DELETE 请求,但不适用于 POST 和 PUT 请求。不知何故,post 或 put 参数没有被捕获。这是我的序列化程序和我的观点。
序列化器.py
class SnippetSerializer(serializers.HyperlinkedModelSerializer):
attribute = serializers.SerializerMethodField()
class Meta:
model = Snippet
fields = ('id','attribute')
def get_attribute(self, obj):
return {
'code': obj.code,
}
views.py
from resources.snippets.models import Snippet
from .serializers import SnippetSerializer
from rest_framework import viewsets
class SnippetViewSet(viewsets.ModelViewSet):
queryset = Snippet.objects.all()
serializer_class = SnippetSerializer
当我使用发布的参数 - http://127.0.0.1:8000/snippet/, { 'code' : 'testtest'} 发出 http 请求时,api 会创建一个没有发布参数的新 sn-p 实例。同样,当我向http://127.0.0.1:8000/snippet/1 发出 PUT 请求时,数据不会使用 put 参数进行更新。
我错过了什么吗?
【问题讨论】:
-
发送
post/put请求时收到的消息/错误是什么?是否弹出任何特定错误? -
它没有显示任何错误。正如@spectras 所说,我没有在序列化程序中包含参数,这导致每当我发出 POST 或 PUT 请求时它们都会被忽略
标签: python django django-views django-rest-framework django-serializer