#4541 Additional fix for remove_invalid_fields()

This commit is contained in:
Camille Harang 2016-10-06 16:56:48 +02:00 committed by GitHub
parent ac5f4e8475
commit 2333a8568d

View File

@ -252,7 +252,7 @@ class OrderingFilter(BaseFilterBackend):
params = request.query_params.get(self.ordering_param) params = request.query_params.get(self.ordering_param)
if params: if params:
fields = [param.strip() for param in params.split(',')] fields = [param.strip() for param in params.split(',')]
ordering = self.remove_invalid_fields(queryset, fields, view) ordering = self.remove_invalid_fields(queryset, fields, view, request)
if ordering: if ordering:
return ordering return ordering
@ -316,8 +316,8 @@ class OrderingFilter(BaseFilterBackend):
return valid_fields return valid_fields
def remove_invalid_fields(self, queryset, fields, view): def remove_invalid_fields(self, queryset, fields, view, request):
valid_fields = [item[0] for item in self.get_valid_fields(queryset, view)] valid_fields = [item[0] for item in self.get_valid_fields(queryset, view, {'request': request})]
return [term for term in fields if term.lstrip('-') in valid_fields] return [term for term in fields if term.lstrip('-') in valid_fields]
def filter_queryset(self, request, queryset, view): def filter_queryset(self, request, queryset, view):