21

How to pass django restframework response for any request to html. Example: A list which contains objects, and html be articles.html.

I tried by using rest framework Response :

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

I am getting this error :

""" AssertionError at /articles/

.accepted_renderer not set on Response """

Where i went wrong, please suggest me.

1

4 Answers 4

53

If it's a function based view, you made need to use an @api_view decorator to display properly. I've seen this particular error happen for this exact reason (missing API View declaration in function based views).

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')
Sign up to request clarification or add additional context in comments.

Comments

9

In my case just forgot to set @api_view(['PUT']) on view function.

So,
.accepted_renderer
The renderer instance that will be used to render the response not set for view.
Set automatically by the APIView or @api_view immediately before the response is returned from the view.

Comments

4

Have you added TemplateHTMLRenderer in your settings?

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

Comments

1

You missed TemplateHTMLRenderer decorator:

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

1 Comment

I keep getting a TypeError: <Model> is not JSON serializable. Everything appears to be exactly as you suggest.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.