django-rest-framework icon indicating copy to clipboard operation
django-rest-framework copied to clipboard

Add more functionalities to OrderingFilter

Open maksjood opened this issue 4 months ago • 0 comments

This is raised from required features for a commercial project I'm working on. We needed to be able to map query param to fields in the queryset. For example, the query parameter is "name" which needs to be mapped to "masked_name" annotation in the queryset.

For each ordering field, we also needed to be able to specify whether null values are considered as high values or low. This is the solution I came up with.

Another feature is that we needed some default orderings to always be applied (for grouping purposes). For example, in a viewset, we add this attribute

ordering_prefixes = ('company_id',)

and when the query is "ordering=name", the final ordering expression would be ('company_id', 'name')

maksjood avatar Oct 14 '24 13:10 maksjood