From 667d62ebaa0dd80544220d5f1e5d109f35e240a6 Mon Sep 17 00:00:00 2001 From: behruz-dev Date: Wed, 15 Oct 2025 14:54:38 +0500 Subject: [PATCH] fix --- core/apps/orders/filters/order.py | 36 +++++++++++++++++-------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/core/apps/orders/filters/order.py b/core/apps/orders/filters/order.py index 3a37c07..7f782d7 100644 --- a/core/apps/orders/filters/order.py +++ b/core/apps/orders/filters/order.py @@ -14,28 +14,32 @@ class OrderFilter(django_filters.FilterSet): ) project = django_filters.ModelMultipleChoiceFilter( field_name='project', - queryset=Project.objects.all() + queryset=Project.objects.all(), + method='filter_by_project_and_folder' ) project_folder = django_filters.ModelMultipleChoiceFilter( field_name='project_folder', - queryset=ProjectFolder.objects.all() + queryset=ProjectFolder.objects.all(), + method='filter_by_project_and_folder' ) - + class Meta: model = Order - fields = [ - 'wherehouse', 'project', 'project_folder', 'date', - ] - - def filter_queryset(self, queryset): - queryset = super().filter_queryset(queryset) + fields = ['wherehouse', 'project', 'project_folder', 'date'] - project_ids = self.data.getlist('project') - folder_ids = self.data.getlist('project_folder') + def filter_by_project_and_folder(self, queryset, name, value): + project_ids = self.data.getlist('project') + folder_ids = self.data.getlist('project_folder') - if project_ids and folder_ids: - queryset = queryset.filter( - Q(project__in=project_ids) | Q(project_folder__in=folder_ids) - ) + if project_ids and folder_ids: + return queryset.filter( + Q(project__in=project_ids) | Q(project_folder__in=folder_ids) + ) - return queryset \ No newline at end of file + if project_ids: + return queryset.filter(project__in=project_ids) + + if folder_ids: + return queryset.filter(project_folder__in=folder_ids) + + return queryset \ No newline at end of file