aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/settings.py
diff options
context:
space:
mode:
authorTom Christie2015-01-27 13:51:30 +0000
committerTom Christie2015-01-27 13:51:30 +0000
commit65bca59ea548dc5e2222be06ca20b3d3fa151cf0 (patch)
tree2ed863b4a90daf7839c55ee0db02eb78190d72be /rest_framework/settings.py
parentfc70c0862ff3e6183b79adc4675a63874261ddf0 (diff)
downloaddjango-rest-framework-65bca59ea548dc5e2222be06ca20b3d3fa151cf0.tar.bz2
Reload api_settings when using Django's 'override_settings'
Diffstat (limited to 'rest_framework/settings.py')
-rw-r--r--rest_framework/settings.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/rest_framework/settings.py b/rest_framework/settings.py
index fc6dfecd..e5e5edaf 100644
--- a/rest_framework/settings.py
+++ b/rest_framework/settings.py
@@ -18,6 +18,7 @@ REST framework settings, checking for user settings first, then falling
back to the defaults.
"""
from __future__ import unicode_literals
+from django.test.signals import setting_changed
from django.conf import settings
from django.utils import importlib, six
from rest_framework import ISO_8601
@@ -198,3 +199,13 @@ class APISettings(object):
api_settings = APISettings(USER_SETTINGS, DEFAULTS, IMPORT_STRINGS)
+
+
+def reload_api_settings(*args, **kwargs):
+ global api_settings
+ setting, value = kwargs['setting'], kwargs['value']
+ if setting == 'REST_FRAMEWORK':
+ api_settings = APISettings(value, DEFAULTS, IMPORT_STRINGS)
+
+
+setting_changed.connect(reload_api_settings)