• Как фильтровать MPTT с djangorestframework-filters?

    FalseHuman
    @FalseHuman
    Не гений, не миллиардер, не плэйбой, не филантроп
    Для автора мой ответ будет не актуальным, так как он скорее всего решил проблему. Но приложу свой вариант решения
    class ProductFilter(django_filters.rest_framework.FilterSet):
                    ....
        category_filter = django_filters.CharFilter(name='category__seo_name',  method='filter_category')
                    ....
        def filter_category(self, queryset, field_name, value):
            try:
                categories = Category.objects.get(seo_name=value)
                value = categories.get_descendants(include_self=True)
                return queryset.filter(**{field_name: value}).select_related('category')
            except Category.DoesNotExist:
                return  queryset.filter(**{field_name: []}).select_related('category')
    Ответ написан
    Комментировать