From 823de530b224bfef8bca4574d7929e54de8e4126 Mon Sep 17 00:00:00 2001 From: sm4640 Date: Sat, 12 Apr 2025 01:45:41 +0900 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Feat:=20[#22]=20category=20?= =?UTF-8?q?=EA=B8=B0=EC=A4=80=20filter=20class=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- portfolios/filters.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 portfolios/filters.py diff --git a/portfolios/filters.py b/portfolios/filters.py new file mode 100644 index 0000000..197faf5 --- /dev/null +++ b/portfolios/filters.py @@ -0,0 +1,17 @@ +from django_filters import rest_framework as filters +from django.db.models import Q +from .models import Portfolio + +class PortfolioFilter(filters.FilterSet): + category = filters.CharFilter(method='filter_category') + + def filter_category(self, queryset, name, value): + categories = value.split(',') + q = Q() + for c in categories: + q |= Q(category__contains=[c]) + return queryset.filter(q) + + class Meta: + model = Portfolio + fields = ['category']