This commit is contained in:
behruz-dev
2025-10-15 14:54:38 +05:00
parent 7ba7f00641
commit 667d62ebaa

View File

@@ -14,28 +14,32 @@ class OrderFilter(django_filters.FilterSet):
) )
project = django_filters.ModelMultipleChoiceFilter( project = django_filters.ModelMultipleChoiceFilter(
field_name='project', field_name='project',
queryset=Project.objects.all() queryset=Project.objects.all(),
method='filter_by_project_and_folder'
) )
project_folder = django_filters.ModelMultipleChoiceFilter( project_folder = django_filters.ModelMultipleChoiceFilter(
field_name='project_folder', field_name='project_folder',
queryset=ProjectFolder.objects.all() queryset=ProjectFolder.objects.all(),
method='filter_by_project_and_folder'
) )
class Meta: class Meta:
model = Order model = Order
fields = [ fields = ['wherehouse', 'project', 'project_folder', 'date']
'wherehouse', 'project', 'project_folder', 'date',
]
def filter_queryset(self, queryset):
queryset = super().filter_queryset(queryset)
def filter_by_project_and_folder(self, queryset, name, value):
project_ids = self.data.getlist('project') project_ids = self.data.getlist('project')
folder_ids = self.data.getlist('project_folder') folder_ids = self.data.getlist('project_folder')
if project_ids and folder_ids: if project_ids and folder_ids:
queryset = queryset.filter( return queryset.filter(
Q(project__in=project_ids) | Q(project_folder__in=folder_ids) Q(project__in=project_ids) | Q(project_folder__in=folder_ids)
) )
if project_ids:
return queryset.filter(project__in=project_ids)
if folder_ids:
return queryset.filter(project_folder__in=folder_ids)
return queryset return queryset