diff options
| author | Tom Christie | 2012-11-09 05:07:34 -0800 |
|---|---|---|
| committer | Tom Christie | 2012-11-09 05:07:34 -0800 |
| commit | c7df9694b5a7a7931161f74a7c5c16d5c98d87d9 (patch) | |
| tree | d2f832ad883a51ce2bde6b1d44b0156f300612c3 /rest_framework/settings.py | |
| parent | 0089f0faa716bd37ca29f9f2db98b4ab273e01f1 (diff) | |
| parent | ff1234b711b8dfb7dc1cc539fa9d2b6fd2477825 (diff) | |
| download | django-rest-framework-c7df9694b5a7a7931161f74a7c5c16d5c98d87d9.tar.bz2 | |
Merge pull request #383 from tomchristie/filtering
Support for filtering backends
Diffstat (limited to 'rest_framework/settings.py')
| -rw-r--r-- | rest_framework/settings.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/rest_framework/settings.py b/rest_framework/settings.py index 9c40a214..906a7cf6 100644 --- a/rest_framework/settings.py +++ b/rest_framework/settings.py @@ -55,6 +55,7 @@ DEFAULTS = { 'anon': None, }, 'PAGINATE_BY': None, + 'FILTER_BACKEND': None, 'UNAUTHENTICATED_USER': 'django.contrib.auth.models.AnonymousUser', 'UNAUTHENTICATED_TOKEN': None, @@ -79,6 +80,7 @@ IMPORT_STRINGS = ( 'DEFAULT_CONTENT_NEGOTIATION_CLASS', 'DEFAULT_MODEL_SERIALIZER_CLASS', 'DEFAULT_PAGINATION_SERIALIZER_CLASS', + 'FILTER_BACKEND', 'UNAUTHENTICATED_USER', 'UNAUTHENTICATED_TOKEN', ) @@ -142,8 +144,15 @@ class APISettings(object): if val and attr in self.import_strings: val = perform_import(val, attr) + self.validate_setting(attr, val) + # Cache the result setattr(self, attr, val) return val + def validate_setting(self, attr, val): + if attr == 'FILTER_BACKEND' and val is not None: + # Make sure we can initilize the class + val() + api_settings = APISettings(USER_SETTINGS, DEFAULTS, IMPORT_STRINGS) |
