diff --git a/django/core/management.py b/django/core/management.py index 6a3a048dae..c522cd9612 100644 --- a/django/core/management.py +++ b/django/core/management.py @@ -299,7 +299,7 @@ def init(): cursor = db.db.cursor() for sql in get_sql_create(core) + get_sql_create(auth) + get_sql_initial_data(core) + get_sql_initial_data(auth): cursor.execute(sql) - cursor.execute("INSERT INTO %s (domain, name) VALUES ('mysite.com', 'My Django site')" % core.Site._meta.db_table) + cursor.execute("INSERT INTO %s (domain, name) VALUES ('example.com', 'Example site')" % core.Site._meta.db_table) except Exception, e: sys.stderr.write("Error: The database couldn't be initialized.\n%s\n" % e) try: diff --git a/django/core/template/loader.py b/django/core/template/loader.py index 498606b7e8..81e6cbf30e 100644 --- a/django/core/template/loader.py +++ b/django/core/template/loader.py @@ -55,10 +55,7 @@ class LoaderOrigin(Origin): def find_template_source(name, dirs=None): for loader in template_source_loaders: try: - source, display_name = loader(name, dirs) - - - + source, display_name = loader(name, dirs) return (source, LoaderOrigin(display_name, loader, name, dirs)) except TemplateDoesNotExist: pass diff --git a/django/core/template/loaders/app_directories.py b/django/core/template/loaders/app_directories.py index 31cdfd5993..8753e16bd7 100644 --- a/django/core/template/loaders/app_directories.py +++ b/django/core/template/loaders/app_directories.py @@ -1,6 +1,7 @@ # Wrapper for loading templates from "template" directories in installed app packages. from django.conf.settings import INSTALLED_APPS, TEMPLATE_FILE_EXTENSION +from django.core.exceptions import ImproperlyConfigured from django.core.template import TemplateDoesNotExist import os @@ -8,8 +9,17 @@ import os app_template_dirs = [] for app in INSTALLED_APPS: i = app.rfind('.') - m, a = app[:i], app[i+1:] - mod = getattr(__import__(m, '', '', [a]), a) + if i == -1: + m, a = app, None + else: + m, a = app[:i], app[i+1:] + try: + if a is None: + mod = __import__(m, '', '', []) + else: + mod = getattr(__import__(m, '', '', [a]), a) + except ImportError, e: + raise ImproperlyConfigured, 'ImportError %s: %s' % (app, e.args[0]) template_dir = os.path.join(os.path.dirname(mod.__file__), 'templates') if os.path.isdir(template_dir): app_template_dirs.append(template_dir) diff --git a/docs/templates.txt b/docs/templates.txt index e543b59763..87cb296328 100644 --- a/docs/templates.txt +++ b/docs/templates.txt @@ -610,6 +610,11 @@ Built-in tag reference {% ssi /home/html/ljworld.com/includes/right_generic.html parsed %} + Note that if you use ``{% ssi %}``, you'll need to define + `ALLOWED_INCLUDE_ROOTS`_ in your Django settings, as a security measure. + +.. _ALLOWED_INCLUDE_ROOTS: http://www.djangoproject.com/documentation/settings/#allowed-include-roots + ``templatetag`` Output one of the bits used to compose template tags.