diff options
| author | Russell Keith-Magee <russell@keith-magee.com> | 2008-06-22 06:50:25 +0000 |
|---|---|---|
| committer | Russell Keith-Magee <russell@keith-magee.com> | 2008-06-22 06:50:25 +0000 |
| commit | 1fc0077a95aff89fde16a8496884d2ca2c4de7c9 (patch) | |
| tree | 38cd1fd589991b89524870b779d5808199dea34c | |
| parent | b83fcacfcc42f4288712d3ffe59c87b847936f61 (diff) | |
Fixed #7517 -- Added code to remove Sites from the site cache when they are deleted. Thanks to Marc Fargas for the patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7724 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/contrib/sites/models.py | 9 | ||||
| -rw-r--r-- | django/contrib/sites/tests.py | 13 |
2 files changed, 22 insertions, 0 deletions
diff --git a/django/contrib/sites/models.py b/django/contrib/sites/models.py index fb6d0a2b1e..c928a4e852 100644 --- a/django/contrib/sites/models.py +++ b/django/contrib/sites/models.py @@ -44,6 +44,15 @@ class Site(models.Model): def __unicode__(self): return self.domain + def delete(self): + pk = self.pk + super(Site, self).delete() + try: + del(SITE_CACHE[pk]) + except KeyError: + pass + + class RequestSite(object): """ A class that shares the primary interface of Site (i.e., it has diff --git a/django/contrib/sites/tests.py b/django/contrib/sites/tests.py new file mode 100644 index 0000000000..d2ec331eca --- /dev/null +++ b/django/contrib/sites/tests.py @@ -0,0 +1,13 @@ +""" +>>> # Make sure that get_current() does not return a deleted Site object. +>>> from django.contrib.sites.models import Site +>>> s = Site.objects.get_current() +>>> s +<Site: example.com> + +>>> s.delete() +>>> Site.objects.get_current() +Traceback (most recent call last): +... +DoesNotExist: Site matching query does not exist. +""" |
