aboutsummaryrefslogtreecommitdiffstats
path: root/djangorestframework/settings.py
diff options
context:
space:
mode:
Diffstat (limited to 'djangorestframework/settings.py')
-rw-r--r--djangorestframework/settings.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/djangorestframework/settings.py b/djangorestframework/settings.py
new file mode 100644
index 00000000..1acaad0c
--- /dev/null
+++ b/djangorestframework/settings.py
@@ -0,0 +1,49 @@
+"""
+Settings for REST framework are all namespaced in the API_SETTINGS setting.
+For example your project's `settings.py` file might look like this:
+
+API_SETTINGS = {
+ 'DEFAULT_RENDERERS': (
+ 'djangorestframework.renderers.JSONRenderer',
+ 'djangorestframework.renderers.YAMLRenderer',
+ )
+ 'DEFAULT_PARSERS': (
+ 'djangorestframework.parsers.JSONParser',
+ 'djangorestframework.parsers.YAMLParser',
+ )
+}
+
+"""
+from django.conf import settings
+from djangorestframework import renderers
+from djangorestframework.compat import yaml
+
+
+DEFAULTS = {
+ 'DEFAULT_RENDERERS': (
+ renderers.JSONRenderer,
+ renderers.JSONPRenderer,
+ renderers.DocumentingHTMLRenderer,
+ renderers.DocumentingXHTMLRenderer,
+ renderers.DocumentingPlainTextRenderer,
+ renderers.XMLRenderer
+ )
+}
+
+if yaml:
+ DEFAULTS['DEFAULT_RENDERERS'] += (renderers.YAMLRenderer, )
+
+
+class APISettings(object):
+ def __getattr__(self, attr):
+ try:
+ return settings.API_SETTINGS[attr]
+ except (AttributeError, KeyError):
+ # 'API_SETTINGS' does not exist,
+ # or requested setting is not present in 'API_SETTINGS'.
+ try:
+ return DEFAULTS[attr]
+ except KeyError:
+ raise AttributeError("No such setting '%s'" % attr)
+
+api_settings = APISettings()