Skip to content

Instantly share code, notes, and snippets.

@andybak
Last active June 19, 2016 03:43
Show Gist options
  • Select an option

  • Save andybak/11321736 to your computer and use it in GitHub Desktop.

Select an option

Save andybak/11321736 to your computer and use it in GitHub Desktop.
Creating Intercooler-friendly custom endpoints in a Django Rest Framework viewset.
class IntercoolerContentNegotiation(DefaultContentNegotiation):
"""
Used to automatically select StaticHTMLRenderer for Intercooler requests
"""
def select_renderer(self, request, renderers, format_suffix):
if request.DATA.get('ic-request', False):
return StaticHTMLRenderer(), 'text/html'
else:
return super(IntercoolerContentNegotiation, self).select_renderer(request, renderers, format_suffix)
class ExampleViewSet(viewsets.ModelViewSet):
content_negotiation_class = IntercoolerContentNegotiation
@action()
def do_something(self, request, pk=None):
return Response('Done Something')
@action()
def do_something_else(self, request, pk=None):
return Response('Done Something Else')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment