Skip to content

Commit 3f9255c

Browse files
committed
Merge pull request #2 from coredumperror/master
Added ability to set the name of the context variable to something besides "settings".
2 parents aa6ffd5 + f766ddb commit 3f9255c

File tree

6 files changed

+27
-5
lines changed

6 files changed

+27
-5
lines changed

README.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,11 @@ via ``settings.<KEY>``:
102102
See also the bundled
103103
`demo app <https://github.com/jkbrzt/django-settings-export/tree/master/demo>`_.
104104

105+
If you wish to change the name of the context variable to something besides
106+
``settings``, add ``SETTINGS_EXPORT_VARIABLE_NAME = 'settings_name'`` to your settings.py.
107+
This is useful when some other plugin is already adding ``settings`` to your
108+
template contexts.
109+
105110
Development
106111
===========
107112

demo/templates/ok_rename.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<pre>
2+
django_settings.FOO: {{ django_settings.FOO }}
3+
django_settings.BAR: {{ django_settings.BAR }}
4+
</pre>

demo/tests.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,13 @@ def test_export_ok(self):
2525
self.assertContains(r, 'settings.FOO: foo')
2626
self.assertContains(r, 'settings.BAR: bar')
2727

28+
def test_export_ok_with_renamed_variable(self):
29+
with self.settings(SETTINGS_EXPORT_VARIABLE_NAME='django_settings'):
30+
r = self.client.get('/rename')
31+
self.assertEqual(r.status_code, 200)
32+
self.assertContains(r, 'django_settings.FOO: foo')
33+
self.assertContains(r, 'django_settings.BAR: bar')
34+
2835
def test_unexported_setting(self):
2936
with self.assertRaises(UnexportedSettingError):
3037
self.client.get('/error')

demo/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
urlpatterns = patterns(
77
'',
88
('^$', views.render_ok),
9+
('^rename$', views.render_ok_rename),
910
('^error$', views.render_error),
1011
)
1112

demo/views.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,9 @@ def render_ok(request):
55
return render(request, 'ok.html')
66

77

8+
def render_ok_rename(request):
9+
return render(request, 'ok_rename.html')
10+
11+
812
def render_error(request):
913
return render(request, 'error.html')

django_settings_export.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from django.core.exceptions import ImproperlyConfigured
99

1010

11-
__version__ = '1.0.5'
11+
__version__ = '1.1.0'
1212

1313

1414
class SettingsExportError(ImproperlyConfigured):
@@ -25,12 +25,13 @@ class UnexportedSettingError(SettingsExportError):
2525

2626
def settings_export(request):
2727
"""
28-
The template context processor that adds settings defined
29-
in `settings.SETTINGS_EXPORT` to the context.
30-
28+
The template context processor that adds settings defined in
29+
`SETTINGS_EXPORT` to the context. If SETTINGS_EXPORT_VARIABLE_NAME is not
30+
set, the context variable will be `settings`.
3131
"""
32+
variable_name = getattr(django_settings, 'SETTINGS_EXPORT_VARIABLE_NAME', 'settings')
3233
return {
33-
'settings': _get_exported_settings()
34+
variable_name: _get_exported_settings()
3435
}
3536

3637

0 commit comments

Comments
 (0)