我正在自定义一个过滤器,但会保留它的通用性,但只能用于一个案例。
我必须创建多个过滤器,但只想使用一个类。我可以创建一个类用于不同类型的过滤器吗?
class MyModelCustomizeFilter(admin.SimpleListFilter):
title = u'' #It can be parameterized?
parameter_name = u'' #It can be parameterized?
def lookups(self, request, model_admin):
return (
('1', ('Activated')), #It can be parameterized?
('0', ('Negate')),
('all', ('All')),
)
def choices(self, cl):
for lookup, title in self.lookup_choices:
yield {
'selected': self.value() == lookup,
'query_string': cl.get_query_string({
self.parameter_name: lookup,
}, []),
'display': title,
}
def queryset(self, request, queryset):
if self.value() in ('0', '1'):
return queryset.filter(status=self.value())
elif self.value() == None:
return queryset.filter(status=None)
我可以参数化 parameter_name ,标题和值查找?