1

Django Rest Framework를 사용 중이며 doc example을 사용하여 API보기에서 TemplateHTMLResponse로 변환하려고합니다. 나는 대부분을 완성 할 수 있었고 템플릿을로드하고 모든 데이터를 전달했지만 프로세스의 HTML 측면에서 문서가 부족합니다.Django Rest Framework에서 TemplateHTMLRenderer를 사용하여 페이지가 매겨진 데이터를 보려면 어떻게해야합니까?

내가 겪고있는 문제점은 페이지가 지정되지 않은 결과입니다. 모든 데이터에 액세스하고 반복 할 수 있지만 조직에 페이지 매김이 필요합니다.

views.py.

class BoxViewSet(viewsets.ModelViewSet): 

    queryset = Uploadobject.objects.all().exclude(verified=False) 
    serializer_class = BoxSerializer 
    permission_classes = (permissions.IsAuthenticatedOrReadOnly, 
          IsBox) 

    #renderer_classes = (renderers.TemplateHTMLRenderer) 
    def list(self, request): 
     queryset = Uploadobject.objects.all().exclude(verified=False) 


     page = self.paginate_queryset(queryset) 
     if page is not None: 
      serializer = self.get_serializer(page, data=request.data) 

      if serializer.is_valid(): 

       serdata = self.get_paginated_response(serializer.data) 
       data= {'objects': queryset, 
        'serializers': serializer} 
       return Response(data, template_name='restframework/objectlist.html') 

objectlist.html 나는 ListModelMixin 포함하고 pagination docs에서 권장하는 사용자 지정 페이지 매김 스크립트를 생성하는 많은 것들을 시도했지만, 아무것도 통과 할 것 같다

{% if serializers %} 
{{ serializers }} 
{% endif %} 

    {% if objects %} 
    {% for object in objects %} 
     <ul> 
      <li>{{ object.Title }}</li> 
      <li>{{ object.Category }}</li> 
     </ul> 
    {% endfor %} 

    {% else %} 
     <p>No objects.</p> 
    {% endif %} 

. 장고에서 페이지 매김하는 방법이 있다는 것을 읽었지 만 장고 Rest Framework에서 모든 페이지 매김을 유지하는 것이 더 간단 할 것이라고 나는 생각한다. 내가 올바른 백엔드 데이터를 가지고 있으며 HTML을 수정해야한다고 말할 수 있습니다. 요약하면 템플릿 페이지의 페이지 번호가 매겨진 설정에 모든 모델 데이터를 표시하는 가장 쉬운 방법은 무엇입니까?

답변

0

DRF 방법을 사용하여 쿼리 세트를 페이지 매김 했는데도 원래의 쿼리 세트로 응답을 보내고 있기 때문에 상황이 발생합니다.

renderer_classes = (renderers.TemplateHTMLRenderer,) 

def list(self, request): 
    queryset = Uploadobject.objects.all().exclude(verified=False) 
    page = self.paginate_queryset(queryset) 
    if page is not None: 
     serializer = self.get_serializer(page, data=request.data) 
     return self.get_paginated_response(serializer.data) 
    data= {'objects': queryset, 'serializers': serializer} 
    return Response(data, template_name='restframework/objectlist.html') 
+0

이것은 문서가 그것을 언급하는 방법, 그리고 나를 위해 일을 넣은 사람은 아니다 :이 같은

뭔가 작동합니다. 먼저 serializer.is_valid() :'를 추가 할 필요가있는 오류가 발생합니다.이 오류는 간단하게 추가 할 수 있습니다. ''template_name '속성이없는 템플릿 응답을보기 또는 응답에 반환했습니다.'라는 오류가 발생합니다. 이 응답 개체를 반환하지 않습니다, 그래서 또한 HTML 매개 변수를 전달할 수 없습니다. HTML 페이지에서 페이지가 매겨진 리턴에 액세스 할 수 있습니까? – RknRobin

+0

@RknRobin 질문에 대한 답변을 찾았습니까? – Patrick

+0

@ Patrick Nope. 나는 그 이후로 나의 고상한 장고 꿈을 포기했다. – RknRobin

관련 문제