Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add more functionalities to OrderingFilter #9562

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

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.

2 participants