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')
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')