Only import django.contrib.site if it's in use

Since django1.7, importing models for uninitialized apps is not
supported, so Site if the app has been configured/initialized.
This commit is contained in:
Hugo Osvaldo Barrera 2015-12-06 13:40:52 -03:00
parent d7fcdb0346
commit f8b820c1db
3 changed files with 3 additions and 3 deletions

View file

@ -8,7 +8,6 @@ import json
import re
from django.conf import settings
from django.contrib.sites.models import Site
from django.core.exceptions import ImproperlyConfigured
from django.template import Library, Node, TemplateSyntaxError
@ -109,6 +108,7 @@ def _get_domain(context):
if 'django.contrib.sites' not in settings.INSTALLED_APPS:
return
elif getattr(settings, 'CHARTBEAT_AUTO_DOMAIN', True):
from django.contrib.sites.models import Site
try:
return Site.objects.get_current().domain
except (ImproperlyConfigured, Site.DoesNotExist): # pylint: disable=E1101

View file

@ -4,7 +4,6 @@ Tests for the Chartbeat template tags and filters.
import re
from django.contrib.sites.models import Site
from django.http import HttpRequest
from django.template import Context
from django.test import TestCase
@ -31,6 +30,7 @@ class ChartbeatTagTestCaseWithSites(TestCase):
call_command("migrate", verbosity=0)
def test_rendering_setup_site(self):
from django.contrib.sites.models import Site
site = Site.objects.create(domain="test.com", name="test")
with override_settings(SITE_ID=site.id):
r = ChartbeatBottomNode().render(Context())

View file

@ -3,7 +3,6 @@ Utility function for django-analytical.
"""
from django.conf import settings
from django.contrib.sites.models import Site
from django.core.exceptions import ImproperlyConfigured
@ -100,6 +99,7 @@ def get_domain(context, prefix):
domain = getattr(settings, 'ANALYTICAL_DOMAIN', None)
if domain is None:
if 'django.contrib.sites' in settings.INSTALLED_APPS:
from django.contrib.sites.models import Site
try:
domain = Site.objects.get_current().domain
except (ImproperlyConfigured, Site.DoesNotExist):