1
0
mirror of https://github.com/django/django.git synced 2025-10-31 09:41:08 +00:00

[1.8.x] Fixed #24332 -- Fixed contrib.sites create_default_site() when 'default' DATABASES is empty.

Backport of e8cf4f8abe from master
This commit is contained in:
Tim Graham
2015-02-12 13:58:37 -05:00
parent 47b23ca2ee
commit 4c948c7c9d
4 changed files with 34 additions and 4 deletions

View File

@@ -17,7 +17,7 @@ def create_default_site(app_config, verbosity=2, interactive=True, using=DEFAULT
if not router.allow_migrate(using, Site):
return
if not Site.objects.exists():
if not Site.objects.using(using).exists():
# The default settings set SITE_ID = 1, and some tests in Django's test
# suite rely on this value. However, if database sequences are reused
# (e.g. in the test suite after flush/syncdb), it isn't guaranteed that

View File

@@ -112,12 +112,13 @@ def clear_site_cache(sender, **kwargs):
Clears the cache (if primed) each time a site is saved or deleted
"""
instance = kwargs['instance']
using = kwargs['using']
try:
del SITE_CACHE[instance.pk]
except KeyError:
pass
try:
del SITE_CACHE[Site.objects.get(pk=instance.pk).domain]
del SITE_CACHE[Site.objects.using(using).get(pk=instance.pk).domain]
except (KeyError, Site.DoesNotExist):
pass
pre_save.connect(clear_site_cache, sender=Site)