Is there a simple way to add a header to each View in a ViewSet?

Viewed 364

I'm using a simple TodoViewSet and want to add an extra header to each view in the set. Is there a simple way to do this?

class TodoViewSet(viewsets.ModelViewSet):
    queryset = TodoModel.objects.all().order_by('id')
    serializer_class = serializers.TodoSerializer

    # eg extra_header = "My-Header: Foo"
1 Answers

You can override the default_response_headers property:

class TodoViewSet(viewsets.ModelViewSet):
    queryset = TodoModel.objects.all().order_by('id')
    serializer_class = serializers.TodoSerializer

    @property
    def default_response_headers(self):
        headers = viewsets.ModelViewSet.default_response_headers.fget(self)
        headers['My-Header'] = 'Foo'
        return headers
Related