Django在list_filter中使用自定义过滤器排除

时间:2011-03-04 22:57:50

标签: python django filter django-admin filtering

我试图做2个过滤器,以便它们出现在django管理过滤器边栏中, 第一个是以下内容 https://gist.github.com/739760c7de861f76657f 在这一个我想做过滤,如果Gold排除以J和Silver开头的那个已经在工作中排除所有不以J开头的那个

第二个过滤器有点复杂,我的数据库中有一个包含几个人的重量的字段,我希望能够按重量等级进行过滤...例如50到70之间的重量和等......

我该怎么做...一如既往地谢谢你!

1 个答案:

答案 0 :(得分:0)

完成了......

class GoldorSilverFilter(DateFieldFilterSpec):
    def __init__(self, f, request, params, model, model_admin):
        super(GoldorSilverFilter, self).__init__(f, request, params, model, model_admin)

        self.links = (
            (_('All'), {}),
            (_('Gold'), {'%s__regex' % self.field.name: '^[^J]',}),
            (_('Silver'), {'%s__istartswith' % self.field.name: 'J',}),
        )

    def title(self):
        return _("Metal")
        #return self.field.name

FilterSpec.filter_specs.insert(0, (lambda f: getattr(f, 'goldorsilverfilter', False), GoldorSilverFilter))

我知道返回不应该绑定一个值,但不知道如何处理它... 关于第二个井,我使用了相同的类,但使用%s_ gte和%s _lte

希望这有助于某人...