Last active
June 19, 2016 03:43
-
-
Save andybak/11321736 to your computer and use it in GitHub Desktop.
Creating Intercooler-friendly custom endpoints in a Django Rest Framework viewset.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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