Skip to content

Commit

Permalink
Fixed #2503 -- Fixed HttpResponse.delete_cookie() to work properly. I…
Browse files Browse the repository at this point in the history
…t now takes path and domain as optional keyword arguments.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@3545 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
adrianholovaty committed Aug 9, 2006
1 parent 2c370e1 commit 925c711
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 8 deletions.
15 changes: 9 additions & 6 deletions django/http/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def has_key(self, key):

def get_full_path(self):
return ''

def is_secure(self):
return os.environ.get("HTTPS") == "on"

Expand Down Expand Up @@ -203,11 +203,14 @@ def set_cookie(self, key, value='', max_age=None, expires=None, path='/', domain
if val is not None:
self.cookies[key][var.replace('_', '-')] = val

def delete_cookie(self, key):
try:
self.cookies[key]['max_age'] = 0
except KeyError:
pass
def delete_cookie(self, key, path='/', domain=None):
self.cookies[key] = ''
if path is not None:
self.cookies[key]['path'] = path
if domain is not None:
self.cookies[key]['domain'] = path
self.cookies[key]['expires'] = 0
self.cookies[key]['max-age'] = 0

def _get_content(self):
content = ''.join(self._iterator)
Expand Down
8 changes: 6 additions & 2 deletions docs/request_response.txt
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ Methods
Returns the ``path``, plus an appended query string, if applicable.

Example: ``"/music/bands/the_beatles/?print=true"``

``is_secure()``
Returns ``True`` if the request is secure; that is, if it was made with
HTTPS.
Expand Down Expand Up @@ -380,10 +380,14 @@ Methods

.. _`cookie Morsel`: http://www.python.org/doc/current/lib/morsel-objects.html

``delete_cookie(key)``
``delete_cookie(key, path='/', domain=None)``
Deletes the cookie with the given key. Fails silently if the key doesn't
exist.

The ``path`` and ``domain`` arguments are new in the Django development version.
Due to the way cookies work, ``path`` and ``domain`` should be the same
values you used in ``set_cookie()`` -- otherwise the cookie may not be deleted.

``content``
Returns the content as a Python string, encoding it from a Unicode object
if necessary. Note this is a property, not a method, so use ``r.content``
Expand Down

0 comments on commit 925c711

Please sign in to comment.