内容如题, 但是切记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,