From e83ff42792eb52235cacda58f3441673cc4e4c94 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sun, 19 May 2013 12:30:53 -0400 Subject: [PATCH] Fixed #20459 - Improved example for setting HTTP header fields. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks Jérémie Blaser. --- AUTHORS | 1 + docs/ref/request-response.txt | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/AUTHORS b/AUTHORS index ad5cea2f39..564284598c 100644 --- a/AUTHORS +++ b/AUTHORS @@ -111,6 +111,7 @@ answer newbie questions, and generally made Django that much better: Paul Bissex Loïc Bistuer Simon Blanchard + Jérémie Blaser Craig Blaszczyk David Blewett Artem Gnilov diff --git a/docs/ref/request-response.txt b/docs/ref/request-response.txt index 10c3f32e60..9ff97e87d0 100644 --- a/docs/ref/request-response.txt +++ b/docs/ref/request-response.txt @@ -584,12 +584,19 @@ Setting header fields To set or remove a header field in your response, treat it like a dictionary:: >>> response = HttpResponse() - >>> response['Cache-Control'] = 'no-cache' - >>> del response['Cache-Control'] + >>> response['Age'] = 120 + >>> del response['Age'] Note that unlike a dictionary, ``del`` doesn't raise ``KeyError`` if the header field doesn't exist. +For setting the ``Cache-Control`` and ``Vary`` header fields, it is recommended +to use the :meth:`~django.utils.cache.patch_cache_control` and +:meth:`~django.utils.cache.patch_vary_headers` methods from +:mod:`django.utils.cache`, since these fields can have multiple, comma-separated +values. The "patch" methods ensure that other values, e.g. added by a +middleware, are not removed. + HTTP header fields cannot contain newlines. An attempt to set a header field containing a newline character (CR or LF) will raise ``BadHeaderError``