Django向filterset\u类传递额外的参数

2024-09-27 20:19:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用django-filter。我有过滤器类:

class ProductFilter(django_filters.FilterSet):
    def __init__(self, attribute=None, *args, **kwargs):
        super(ProductFilter, self).__init__(*args, **kwargs)
        #do stuff with attribute

我的观点是:

^{pr2}$

如何将参数传递给ProductFilter__init__函数?filterset_class = ProductFilter(attribute='width')不起作用。在


Tags: djangoselfnone过滤器initdefargsattribute
1条回答
网友
1楼 · 发布于 2024-09-27 20:19:14

您可以尝试重写^{}方法:

class ProductListView(FilterView):
    model = Product
    ...
    filterset_class = ProductFilter

    def get_filterset_kwargs(self, filterset_class)
        kwargs = super(ProductListView, self).get_filterset_kwargs(filterset_class)
        kwargs['attribute'] = 'width'
        return kwargs

在您的FilterSet类中,您可以从kwargs中弹出属性:

^{pr2}$

或者在签名中显式地包含它。在

class ProductFilter(django_filters.FilterSet):
    def __init__(self, attribute=None, **kwargs):
        super(ProductFilter, self).__init__(**kwargs)

相关问题 更多 >

    热门问题