【发布时间】:2016-11-27 05:10:01
【问题描述】:
我在一篇文章中读到,理想的做法是包含一个指向新资源 URL(通过 POST 新创建)的 Location 标头是一个很好的标准。我的问题是我不知道如何包含它。
我正在使用 APIView 使用基于类的视图,我在视图中的代码是:
class ListArtists(APIView):
serializer_class = ArtistSerializer
def get(self, request, format=None):
_array = Artist.objects.filter()
serializer = self.serializer_class(_array, many=True)
if serializer.data:
_status = status.HTTP_200_OK
else:
_status = status.HTTP_204_NO_CONTENT
return Response(standardResponse(data=serializer.data), status=_status)
def post(self, request, format=None):
serializer = self.serializer_class(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(standardResponse(data=serializer.data), status=status.HTTP_201_CREATED)
else:
return Response(standardResponse(errors=serializer.errors))
artist = ListArtists.as_view()
urls.py
from django.conf.urls import url, include
from store import views
urlpatterns = [
url(r'^artists/', views.artist, name='artists-list'),
]
附言
每次我使用高级 REST 客户端发出请求时,我都会收到以下响应:
Date: Sat, 23 Jul 2016 10:54:23 GMT
Server: WSGIServer/0.1 Python/2.7.10
Vary: Accept, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Allow: GET, POST, HEAD, OPTIONS
【问题讨论】:
-
您可以在返回之前添加headers to the response object。
-
你能提供一个代码吗..
标签: django django-rest-framework