如何使 BrowsableAPI 與功能視圖一起使用?例如,假設我有
from django.http import HttpResponse, JsonResponse
from rest_framework import generics
from django.views.decorators.csrf import csrf_exempt
from rest_framework.parsers import JSONParser
from rest_framework.decorators import api_view
from .models import Snippet, SnippetSerializer
@api_view(['GET', 'POST'])
@csrf_exempt
def snippet_list(request):
"""
List all code snippets, or create a new snippet.
"""
if request.method == 'GET':
snippets = Snippet.objects.all()
serializer = SnippetSerializer(snippets, many=True)
return JsonResponse(serializer.data, safe=False)
elif request.method == 'POST':
data = JSONParser().parse(request)
serializer = SnippetSerializer(data=data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data, status=201)
return JsonResponse(serializer.errors, status=400)
當我在 url 中注冊并訪問它時,瀏覽器會給我原始 json,而不是它的 browsableapi 版本。我怎樣才能讓它作業?我查閱了檔案和帖子,但找不到任何東西,每個人都在使用基于類或泛型。我知道這種制作視圖的方式并不理想,但我仍然想知道如何使功能視圖“可瀏覽”。
#snippets/urls.py
from django.urls import path
from .views import snippet_list
urlpatterns = [
path('', snippet_list, name='snippets')
]
#project/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('snippets.urls'))
]
uj5u.com熱心網友回復:
正在瀏覽您的代碼并發現
return JsonResponse(serializer.data, safe=False)
在您的 Get 方法中,我認為這可能是問題所在。
嘗試 -
from rest_framework.response import Response
return Response(serializer.data)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/422729.html
標籤:
上一篇:嵌套值Json和Python
