Skip to content

Commit d300c3c

Browse files
authored
Merge pull request #5047 from kirberich/merge-vary-headers
Update existing vary headers in response instead of overwriting them.
2 parents 3329017 + 9ebd5a2 commit d300c3c

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

rest_framework/views.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from django.http import Http404
1010
from django.http.response import HttpResponseBase
1111
from django.utils import six
12+
from django.utils.cache import cc_delim_re, patch_vary_headers
1213
from django.utils.encoding import smart_text
1314
from django.utils.translation import ugettext_lazy as _
1415
from django.views.decorators.csrf import csrf_exempt
@@ -414,6 +415,11 @@ def finalize_response(self, request, response, *args, **kwargs):
414415
response.accepted_media_type = request.accepted_media_type
415416
response.renderer_context = self.get_renderer_context()
416417

418+
# Add new vary headers to the response instead of overwriting.
419+
vary_headers = self.headers.pop('Vary', None)
420+
if vary_headers is not None:
421+
patch_vary_headers(response, cc_delim_re.split(vary_headers))
422+
417423
for key, value in self.headers.items():
418424
response[key] = value
419425

0 commit comments

Comments
 (0)