From 4b79c0f4d623a5849256fd3e912b9e013d59746a Mon Sep 17 00:00:00 2001 From: Martijn Bastiaan Date: Sun, 27 Jul 2014 14:22:04 +0200 Subject: [PATCH] Split remove_invalid_fields() into reusable chunks --- rest_framework/filters.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/rest_framework/filters.py b/rest_framework/filters.py index 96d15eb9d..c14453b4e 100644 --- a/rest_framework/filters.py +++ b/rest_framework/filters.py @@ -127,7 +127,7 @@ class OrderingFilter(BaseFilterBackend): return (ordering,) return ordering - def remove_invalid_fields(self, queryset, ordering, view): + def get_valid_fields(self, queryset, view): valid_fields = getattr(view, 'ordering_fields', self.ordering_fields) if valid_fields is None: @@ -147,6 +147,10 @@ class OrderingFilter(BaseFilterBackend): valid_fields = [field.name for field in queryset.model._meta.fields] valid_fields += queryset.query.aggregates.keys() + return valid_fields + + def remove_invalid_fields(self, queryset, ordering, view): + valid_fields = self.get_valid_fields(queryset, view) return [term for term in ordering if term.lstrip('-') in valid_fields] def filter_queryset(self, request, queryset, view):