python - modelviewset - django rest framework tutorial
¿Cómo pasar la respuesta de django rest framework a html? (4)
Cómo pasar django restframework respuesta para cualquier solicitud a html. Ejemplo: una lista que contiene objetos, y html be articles.html.
Intenté utilizando la estructura de resto Respuesta:
data= {''articles'': Article.objects.all() }
return Response(data, template_name=''articles.html'')
Estoy recibiendo este error:
""" AssertionError at /articles/
.accepted_renderer not set on Response """
Donde me equivoqué, por favor sugiéreme.
¿Has agregado TemplateHTMLRenderer
en tu configuración?
http://www.django-rest-framework.org/api-guide/renderers/#setting-the-renderers
En mi caso, solo olvidé configurar @api_view ([''PUT'']) en la función de visualización.
Asi que,
.accepted_renderer
La instancia del renderizador que se utilizará para representar la respuesta no está configurada para la vista.
Se establece automáticamente por APIView o @api_view inmediatamente antes de que la respuesta se devuelva desde la vista.
Si se trata de una vista basada en funciones, es necesario utilizar un decorador @api_view para que se muestre correctamente. He visto que este error en particular ocurre por esta razón exacta (falta la declaración de vista de API en las vistas basadas en funciones).
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'')
Te perdiste el decorador TemplateHTMLRenderer
:
@api_view((''GET'',)) @renderer_classes((TemplateHTMLRenderer,)) def articles(request, format=None): data= {''articles'': Article.objects.all() } return Response(data, template_name=''articles.html'')