diff options
Diffstat (limited to 'djangorestframework/settings.py')
| -rw-r--r-- | djangorestframework/settings.py | 49 |
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() |
