我使用 Wagtail 作为无头 CMS / API,但是我没有使用 PagesAPIViewSet,而是按照此处所述重写了serve()方法来获取页面: https://docs.wagtail.org/en/stable/reference/contrib/routablepage.html
这非常有效,因为我可以返回 JsonResponse。问题是(据我所知),调试工具栏仅适用于标准休息框架 Response(),所以我试图找到一种方法来返回 DRF 响应。
我收到的错误是“.accepted_renderer not set on Response” 我将如何设置接受的渲染器? 这大概就是我所得到的:
from rest_framework.response import Response
from wagtail.core.models import Page
class BasePage(Page, RoutablePageMixin):
....
def serve(self, request, *args, **kwargs):
context = self.get_context(request, *args, **kwargs) # Context where I serialize data to JSON etc.
return Response(data=context['data'], status=status.HTTP_200_OK) ##Throws error, with JsonResponse() it works fine.
您可以尝试模拟页面视图,然后返回该页面视图的响应。
class BasePage(Page, RoutablePageMixin):
...
def serve(self, request, *args, **kwargs):
context = self.get_context(request, *args, **kwargs)
@api_view(['GET'])
def view(request):
return Response(data=context['data'], status=status.HTTP_200_OK)
return view(request)