diff options
| author | Daniel Roseman <daniel.roseman@digital.cabinet-office.gov.uk> | 2015-07-11 18:15:38 +0100 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2015-07-13 17:55:19 -0400 |
| commit | 4cc0baa98e8a5bb8f2cf91539d141cbc30af6f61 (patch) | |
| tree | 4bee2dafe47dd41f05055bd53b5c21efac4fce65 /django | |
| parent | 269315d81a955b9352777961a76763a47fb61667 (diff) | |
[1.8.x] Fixed #25079 -- Added warning if both TEMPLATES and TEMPLATE_* settings are defined.
Django ignores the value of the TEMPLATE_* settings if TEMPLATES is also
set, which is confusing for users following older tutorials. This change
adds a system check that warns if any of the TEMPLATE_* settings have
changed from their defaults but the TEMPLATES dict is also non-empty.
Removed the TEMPLATE_DIRS from the test settings file; this was marked
for removal in 1.10 but no tests fail if it is removed now.
Backport of 24620d71f2116da31abe6c9391f7bc807ac23c0b from master
Diffstat (limited to 'django')
| -rw-r--r-- | django/core/checks/__init__.py | 1 | ||||
| -rw-r--r-- | django/core/checks/compatibility/django_1_8_0.py | 31 |
2 files changed, 32 insertions, 0 deletions
diff --git a/django/core/checks/__init__.py b/django/core/checks/__init__.py index e446bdc099..5b665d23c1 100644 --- a/django/core/checks/__init__.py +++ b/django/core/checks/__init__.py @@ -8,6 +8,7 @@ from .registry import register, run_checks, tag_exists, Tags # Import these to force registration of checks import django.core.checks.compatibility.django_1_7_0 # NOQA +import django.core.checks.compatibility.django_1_8_0 # NOQA import django.core.checks.model_checks # NOQA import django.core.checks.security.base # NOQA import django.core.checks.security.csrf # NOQA diff --git a/django/core/checks/compatibility/django_1_8_0.py b/django/core/checks/compatibility/django_1_8_0.py new file mode 100644 index 0000000000..c0d8d0a779 --- /dev/null +++ b/django/core/checks/compatibility/django_1_8_0.py @@ -0,0 +1,31 @@ +from __future__ import unicode_literals + +from django.conf import global_settings, settings + +from .. import Tags, Warning, register + + +@register(Tags.compatibility) +def check_duplicate_template_settings(app_configs, **kwargs): + if settings.TEMPLATES: + values = [ + 'TEMPLATE_DIRS', + 'ALLOWED_INCLUDE_ROOTS', + 'TEMPLATE_CONTEXT_PROCESSORS', + 'TEMPLATE_DEBUG', + 'TEMPLATE_LOADERS', + 'TEMPLATE_STRING_IF_INVALID', + ] + duplicates = [ + value for value in values + if getattr(settings, value) != getattr(global_settings, value) + ] + if duplicates: + return [Warning( + "The standalone TEMPLATE_* settings were deprecated in Django " + "1.8 and the TEMPLATES dictionary takes precedence. You must " + "put the values of the following settings into your default " + "TEMPLATES dict: %s." % ", ".join(duplicates), + id='1_8.W001', + )] + return [] |
