Features: 1) Add conditional ordering for children_qs to handle random child order; 2) Enable prefetch optimization by adding prefetch_related(None).
Fixes: None; Extra: Minor refactor in `children_qs` assignment for clarity.
This commit is contained in:
parent
880f3f19b1
commit
99288ebbc8
1 changed files with 4 additions and 2 deletions
|
|
@ -422,9 +422,11 @@ class CategoryFilter(FilterSet):
|
|||
parent_order = f"-{field}" if desc else field
|
||||
child_order = parent_order
|
||||
|
||||
qs = queryset.order_by(parent_order)
|
||||
children_qs = Category.objects.all().order_by(child_order)
|
||||
qs = queryset.order_by(parent_order).prefetch_related(None)
|
||||
|
||||
children_qs = (
|
||||
Category.objects.all().order_by(child_order) if child_order != "?" else Category.objects.all().order_by("?")
|
||||
)
|
||||
return qs.prefetch_related(Prefetch("children", queryset=children_qs))
|
||||
|
||||
def filter_name(self, queryset, _name, value):
|
||||
|
|
|
|||
Loading…
Reference in a new issue