簡體   English   中英

如何將django rest框架響應傳遞給html?

[英]How to pass django rest framework response to html?

如何將任何請求的django restframework響應傳遞給html。 示例:包含對象的列表,html為articles.html。

我嘗試使用rest框架Response:

data= {'articles': Article.objects.all() }
return Response(data, template_name='articles.html')

我收到此錯誤:

""" AssertionError at /articles/

.accepted_renderer not set on Response """

哪里出錯了,請建議我。

如果它是基於函數的視圖,則需要使用@api_view裝飾器來正確顯示。 我已經看到這個特定的錯誤發生在這個確切的原因(在基於函數的視圖中缺少API視圖聲明)。

from rest_framework.decorators import api_view
# ....

@api_view(['GET', 'POST', ])
def articles(request, format=None):
    data= {'articles': Article.objects.all() }
    return Response(data, template_name='articles.html')

在我的情況下,只是忘了在視圖函數上設置@api_view(['PUT'])。

所以,
.accepted_renderer
將用於呈現未為視圖設置的響應的呈示器實例。
在從視圖返回響應之前,立即由APIView或@api_view自動設置。

你在設置中添加了TemplateHTMLRenderer嗎?

http://www.django-rest-framework.org/api-guide/renderers/#setting-the-renderers

你錯過了TemplateHTMLRenderer裝飾:

@api_view(('GET',))
@renderer_classes((TemplateHTMLRenderer,))
def articles(request, format=None):
    data= {'articles': Article.objects.all() }
    return Response(data, template_name='articles.html')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM