2017-11-29 4 views

답변

4

API는 게시되지 않은 정보 유출을 방지하기 위해 실제 버전의 페이지 만 제공하도록 설계되었습니다. 그러나 PagesAPIEndpoint를 서브 클래 싱하여이 동작을 재정의 할 수 있습니다 - 예를 들면 : URL 엔드 포인트를 등록 할 때

from django.http import Http404 
from rest_framework.response import Response 
from wagtail.api.v2.endpoints import PagesAPIEndpoint 


class DraftPagesAPIEndpoint(PagesAPIEndpoint): 
    def detail_view(self, request, pk): 
     instance = self.get_object() 

     if request.GET.get('draft'): 
      instance = instance.get_latest_revision_as_page() 
     elif not instance.live: 
      raise Http404 

     serializer = self.get_serializer(instance) 
     return Response(serializer.data) 

을 그리고, PagesAPIEndpoint의 장소에서이 클래스를 사용

api_router.register_endpoint('pages', DraftPagesAPIEndpoint) 

이는 다음과 같은 기능을 제공합니다 초안 버전을 되 찾으려면 URL에 ?draft=true을 전달하십시오.