django의 rest_framework를 통해 컨텍스트를 전달하는 방법

코딩 조

달리 지정하지 않으면 일반 html 응답을 반환하는보기를 만들려고합니다. django의 rest_framework를 사용하여 요청 된 경우 JSON을 반환합니다.

템플릿 내부의 컨텍스트에 액세스하려는 부분을 제외하고 모두 잘 작동합니다.

다음은 그림을 기반으로 한 작은 코드 예제입니다.

@api_view(('GET', ))
@renderer_classes((TemplateHTMLRenderer, UnicodeJSONRenderer, JSONRenderer, BrowsableAPIRenderer))
def index(request):
    queryset = Picture.objects.all()

    page = request.GET.get('page')
    paginator = Paginator(queryset, 25)
    try:
        pictures = paginator.page(page)
    except PageNotAnInteger:
        pictures = paginator.page(1)
    except EmptyPage:
        pictures = paginator.page(paginator.num_pages)

    serializer_context = {'request': request, 'pictures': pictures, 'filter': FilterForm()}
    serializer = PaginatedPictureSerializer(pictures, context=serializer_context)
    return Response(serializer.data, template_name='index.html')

템플릿 내 컨텍스트에 액세스하려는 경우 새로운 기능 :

{% if pictures %}
      {% for picture in pictures %}
          ...
      {% endfor %}
{% else %}
    <p>No pictures are available.</p>
{% endif %}

결과는 항상 다음과 같습니다. 사용할 수있는 그림이 없습니다 (그리고 디버깅도 마찬가지입니다).

편집 : 요청대로

class PictureSerializer(serializers.ModelSerializer):

    class Meta:
        model = Picture


class PaginatedPictureSerializer(pagination.PaginationSerializer):

    class Meta:
        object_serializer_class = PictureSerializer
마리오 데프

여러 컨텍스트 항목을 렌더링 할 때의 문제점은 템플릿 내부의 키에 액세스 할 수 없다는 것입니다. 조금만 해킹해야합니다.

이 문제를 해결 하는 관련 SO 질문 이 있습니다. 따라서 기본적으로 다음을 수행합니다.

serializer_context = {'request': request, 'pictures': pictures, 'filter': FilterForm()}

if request.accepted_renderer.format == 'html':
    return Response(serializer_context, template_name='index.html')

serializer = PaginatedPictureSerializer(pictures, context=serializer_context)
return Response(serializer.data, template_name='index.html')

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Django의 클래스를 통해 컨텍스트 변수 전달

분류에서Dev

의도를 통해 이미지를 전달하는 방법?

분류에서Dev

반응 컨텍스트 API를 통해 여러 상태를 전달하는 방법

분류에서Dev

REST를 통해 들어오는 데이터를 Quarkus의 SSE 스트림으로 전달하는 방법

분류에서Dev

여러 컨텍스트를 전달하는 동안 django의 루프 내에서 반복하는 방법

분류에서Dev

ProvidePlugin을 통해 제공된 모듈의 컨텍스트를 설정하는 방법은 무엇입니까?

분류에서Dev

rest_framework 및 Django를 사용하여 여러 개체의 응답을 얻는 방법

분류에서Dev

Kotlin에서 의도를 통해 객체의 MutableList를 전달하는 방법

분류에서Dev

Django 템플릿을 통해 Sportsipy Python Sports API를 전달하는 방법

분류에서Dev

django-python에서 URL을 통해 objectId를 전달하는 방법

분류에서Dev

컨텍스트를 전달해야하는 Django 뷰에서 HttpResponseRedirect () 사용

분류에서Dev

어떻게 클래스의 방법과 의도에 대한 컨텍스트를 전달하는 방법?

분류에서Dev

키 입력을 통해 왼쪽 상단 컨텍스트 메뉴를 여는 방법 (Windows의 PuTTY 용)

분류에서Dev

함수의 함수를 통해 변수를 전달하는 방법

분류에서Dev

Flutter에서 AlertDialog를 표시하기 위해 컨텍스트를 전달하는 방법

분류에서Dev

java의 ProcessBuilder를 통해 ssh를 통해 pkill에 인수를 전달하는 방법은 무엇입니까?

분류에서Dev

Javascript Promise에 컨텍스트를 전달하는 방법

분류에서Dev

NSValueTransformer에 컨텍스트 개체를 전달하는 방법

분류에서Dev

C / C ++로 정의 된 Ruby 메서드에 컨텍스트를 전달하는 방법

분류에서Dev

Asp .Net Core의 정적 메서드에 데이터 컨텍스트를 전달하는 방법

분류에서Dev

sed를 통해 특수 문자를 전달하는 방법

분류에서Dev

FormUrlEncodedContent를 통해 List <int>를 전달하는 방법

분류에서Dev

Wikipedia API를 통해 특정 섹션의 텍스트를 얻는 방법

분류에서Dev

네트워크를 통해 개체의 정적 데이터를 전달하는 방법은 무엇입니까?

분류에서Dev

상태를 통해 배열 항목을 전달하는 방법

분류에서Dev

객체를 통해 소품을 전달하는 방법

분류에서Dev

ContentPage를 통해 여러 레이블을 전달하는 방법

분류에서Dev

<Link>를 통해 소품을 전달하는 방법

분류에서Dev

Json 본문 Powershell을 통해 변수를 전달하는 방법

Related 관련 기사

  1. 1

    Django의 클래스를 통해 컨텍스트 변수 전달

  2. 2

    의도를 통해 이미지를 전달하는 방법?

  3. 3

    반응 컨텍스트 API를 통해 여러 상태를 전달하는 방법

  4. 4

    REST를 통해 들어오는 데이터를 Quarkus의 SSE 스트림으로 전달하는 방법

  5. 5

    여러 컨텍스트를 전달하는 동안 django의 루프 내에서 반복하는 방법

  6. 6

    ProvidePlugin을 통해 제공된 모듈의 컨텍스트를 설정하는 방법은 무엇입니까?

  7. 7

    rest_framework 및 Django를 사용하여 여러 개체의 응답을 얻는 방법

  8. 8

    Kotlin에서 의도를 통해 객체의 MutableList를 전달하는 방법

  9. 9

    Django 템플릿을 통해 Sportsipy Python Sports API를 전달하는 방법

  10. 10

    django-python에서 URL을 통해 objectId를 전달하는 방법

  11. 11

    컨텍스트를 전달해야하는 Django 뷰에서 HttpResponseRedirect () 사용

  12. 12

    어떻게 클래스의 방법과 의도에 대한 컨텍스트를 전달하는 방법?

  13. 13

    키 입력을 통해 왼쪽 상단 컨텍스트 메뉴를 여는 방법 (Windows의 PuTTY 용)

  14. 14

    함수의 함수를 통해 변수를 전달하는 방법

  15. 15

    Flutter에서 AlertDialog를 표시하기 위해 컨텍스트를 전달하는 방법

  16. 16

    java의 ProcessBuilder를 통해 ssh를 통해 pkill에 인수를 전달하는 방법은 무엇입니까?

  17. 17

    Javascript Promise에 컨텍스트를 전달하는 방법

  18. 18

    NSValueTransformer에 컨텍스트 개체를 전달하는 방법

  19. 19

    C / C ++로 정의 된 Ruby 메서드에 컨텍스트를 전달하는 방법

  20. 20

    Asp .Net Core의 정적 메서드에 데이터 컨텍스트를 전달하는 방법

  21. 21

    sed를 통해 특수 문자를 전달하는 방법

  22. 22

    FormUrlEncodedContent를 통해 List <int>를 전달하는 방법

  23. 23

    Wikipedia API를 통해 특정 섹션의 텍스트를 얻는 방법

  24. 24

    네트워크를 통해 개체의 정적 데이터를 전달하는 방법은 무엇입니까?

  25. 25

    상태를 통해 배열 항목을 전달하는 방법

  26. 26

    객체를 통해 소품을 전달하는 방법

  27. 27

    ContentPage를 통해 여러 레이블을 전달하는 방법

  28. 28

    <Link>를 통해 소품을 전달하는 방법

  29. 29

    Json 본문 Powershell을 통해 변수를 전달하는 방법

뜨겁다태그

보관