django filter查询多选_django admin列表页面, 右侧筛选框实现多选功能

内容如题, 但是切记admin页面请勿定制得过于复杂. 复杂页面请自行设计

理念: 将url中的'='替换为'__in='

1 在根目录下, 新建一个文件夹 extraadminfilters, 在这个文件夹下新增两个文件__init__.py, 声明这个文件夹是一个包; 'filters.py', 写我们的额外的Filter

filters.py代码如下

from django.utils.translation import ugettext_lazy as _

from django.contrib.admin.filters import FieldListFilter

from django.db.models.fields import IntegerField, AutoField

class MultipleSelectFieldListFilter(FieldListFilter):

def __init__(self, field, request, params, model, model_admin, field_path):

self.lookup_kwarg = '%s_filter' % field_path

self.filter_statement = '%s__id' % field_path

self.lookup_val = request.GET.get(self.lookup_kwarg, None)

self.lookup_choices = field.get_choices(include_blank=False)

super(MultipleSelectFieldListFilter, self).__init__(

field, request, params,

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值