diff --git a/README.rst b/README.rst index 5d3f265..3d0edae 100644 --- a/README.rst +++ b/README.rst @@ -102,6 +102,11 @@ via ``settings.``: See also the bundled `demo app `_. +If you wish to change the name of the context variable to something besides +``settings``, add ``SETTINGS_EXPORT_VARIABLE_NAME = 'settings_name'`` to your settings.py. +This is useful when some other plugin is already adding ``settings`` to your +template contexts. + Development =========== diff --git a/demo/templates/ok_rename.html b/demo/templates/ok_rename.html new file mode 100644 index 0000000..3a5b8f4 --- /dev/null +++ b/demo/templates/ok_rename.html @@ -0,0 +1,4 @@ +
+django_settings.FOO: {{ django_settings.FOO }}
+django_settings.BAR: {{ django_settings.BAR }}
+
diff --git a/demo/tests.py b/demo/tests.py index 662ea59..dbb6ef2 100644 --- a/demo/tests.py +++ b/demo/tests.py @@ -25,6 +25,13 @@ def test_export_ok(self): self.assertContains(r, 'settings.FOO: foo') self.assertContains(r, 'settings.BAR: bar') + def test_export_ok_with_renamed_variable(self): + with self.settings(SETTINGS_EXPORT_VARIABLE_NAME='django_settings'): + r = self.client.get('/rename') + self.assertEqual(r.status_code, 200) + self.assertContains(r, 'django_settings.FOO: foo') + self.assertContains(r, 'django_settings.BAR: bar') + def test_unexported_setting(self): with self.assertRaises(UnexportedSettingError): self.client.get('/error') diff --git a/demo/urls.py b/demo/urls.py index ffcdce1..58fd5d1 100644 --- a/demo/urls.py +++ b/demo/urls.py @@ -6,6 +6,7 @@ urlpatterns = patterns( '', ('^$', views.render_ok), + ('^rename$', views.render_ok_rename), ('^error$', views.render_error), ) diff --git a/demo/views.py b/demo/views.py index 782e6ae..64e5b25 100644 --- a/demo/views.py +++ b/demo/views.py @@ -5,5 +5,9 @@ def render_ok(request): return render(request, 'ok.html') +def render_ok_rename(request): + return render(request, 'ok_rename.html') + + def render_error(request): return render(request, 'error.html') diff --git a/django_settings_export.py b/django_settings_export.py index 4a48e31..901ea34 100644 --- a/django_settings_export.py +++ b/django_settings_export.py @@ -8,7 +8,7 @@ from django.core.exceptions import ImproperlyConfigured -__version__ = '1.0.5' +__version__ = '1.1.0' class SettingsExportError(ImproperlyConfigured): @@ -25,12 +25,13 @@ class UnexportedSettingError(SettingsExportError): def settings_export(request): """ - The template context processor that adds settings defined - in `settings.SETTINGS_EXPORT` to the context. - + The template context processor that adds settings defined in + `SETTINGS_EXPORT` to the context. If SETTINGS_EXPORT_VARIABLE_NAME is not + set, the context variable will be `settings`. """ + variable_name = getattr(django_settings, 'SETTINGS_EXPORT_VARIABLE_NAME', 'settings') return { - 'settings': _get_exported_settings() + variable_name: _get_exported_settings() }