Skip to content

Commit

Permalink
Merge pull request #2 from coredumperror/master
Browse files Browse the repository at this point in the history
Added ability to set the name of the context variable to something besides "settings".
  • Loading branch information
jkbrzt committed Mar 10, 2016
2 parents aa6ffd5 + f766ddb commit 3f9255c
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 5 deletions.
5 changes: 5 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,11 @@ via ``settings.<KEY>``:
See also the bundled
`demo app <https://github.com/jkbrzt/django-settings-export/tree/master/demo>`_.

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
===========

Expand Down
4 changes: 4 additions & 0 deletions demo/templates/ok_rename.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<pre>
django_settings.FOO: {{ django_settings.FOO }}
django_settings.BAR: {{ django_settings.BAR }}
</pre>
7 changes: 7 additions & 0 deletions demo/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand Down
1 change: 1 addition & 0 deletions demo/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
urlpatterns = patterns(
'',
('^$', views.render_ok),
('^rename$', views.render_ok_rename),
('^error$', views.render_error),
)

Expand Down
4 changes: 4 additions & 0 deletions demo/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -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')
11 changes: 6 additions & 5 deletions django_settings_export.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from django.core.exceptions import ImproperlyConfigured


__version__ = '1.0.5'
__version__ = '1.1.0'


class SettingsExportError(ImproperlyConfigured):
Expand All @@ -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()
}


Expand Down

0 comments on commit 3f9255c

Please sign in to comment.