This commit is contained in:
Daniel Hahler 2016-05-22 15:22:19 +00:00
commit 7522183dbc

View File

@ -232,11 +232,15 @@ class OrderingFilter(BaseFilterBackend):
msg = ("Cannot use %s on a view which does not have either a "
"'serializer_class' or 'ordering_fields' attribute.")
raise ImproperlyConfigured(msg % self.__class__.__name__)
valid_fields = [
(field.source or field_name, field.label)
for field_name, field in serializer_class().fields.items()
if not getattr(field, 'write_only', False) and not field.source == '*'
]
valid_fields = []
for field_name, field in serializer_class().fields.items():
if getattr(field, 'write_only', False) or field.source == '*':
continue
if field.source:
valid_fields += [(field.source, field.label),
(field_name, field.label)]
else:
valid_fields += (field_name, field.label)
elif valid_fields == '__all__':
# View explicitly allows filtering on any model field
valid_fields = [