Skip to content

Conversation

@maksjood
Copy link

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

@hartungstenio
Copy link

Hello.

Have you tried the django-filter's OrderingFilter. It works well with DRF, and allows some level of customization.

https://django-filter.readthedocs.io/en/stable/ref/filters.html#orderingfilter

@maksjood
Copy link
Author

some level of customization

Hi. Thanks, but I couldn't find the "null fist/last" functionality in django-filter's OrderingFilter

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants