change term_valid def

This commit is contained in:
ali 2023-08-05 03:11:31 +03:30
parent 0561ecff33
commit 43a07e23bd

View File

@ -300,7 +300,7 @@ class OrderingFilter(BaseFilterBackend):
(field.name, field.verbose_name) for field in queryset.model._meta.fields (field.name, field.verbose_name) for field in queryset.model._meta.fields
] ]
valid_fields += [ valid_fields += [
(key, key.title().split('__')) (key, key)
for key in queryset.query.annotations for key in queryset.query.annotations
] ]
else: else:
@ -315,13 +315,19 @@ class OrderingFilter(BaseFilterBackend):
valid_fields = {item[1]: item[0] for item in self.get_valid_fields(queryset, view, {'request': request})} valid_fields = {item[1]: item[0] for item in self.get_valid_fields(queryset, view, {'request': request})}
def term_valid(term): def term_valid(term):
negative = ""
if term.startswith("-"): if term.startswith("-"):
negative = "-"
term = term[1:] term = term[1:]
return valid_fields.get(term) is not None
if valid_fields.get(term):
return negative + valid_fields.get(term)
elif term in valid_fields.values():
return negative + term
return [ return [
valid_fields.get(term) if not term.startswith("-") else '-' + valid_fields.get(term[1:]) term_valid(term) for term in fields if term_valid(term)
for term in fields if term_valid(term)
] ]
def filter_queryset(self, request, queryset, view): def filter_queryset(self, request, queryset, view):