“django admin search”是django admin的高级搜索模式
django-admin-search的Python项目详细描述
django管理搜索
这个项目在django admin中实现了一个搜索模式来过滤您的queryset
obs:此项目仅在django admin中有效
图像:
管理列表中的按钮:
打开模式:
安装:
pip install django-admin-search
用法:
在settings.py中添加到已安装的应用程序:
INSTALLED_APPS = [ ... 'django_admin_search', ... ]
为模型创建搜索表单:
from .models import Area from django.forms import ModelForm, Form from django.forms import DateField, CharField, ChoiceField, TextInput class YourFormSearch(Form): name = CharField(required=False) date = DateField(required=False, widget=TextInput( attrs={ 'filter_method': '__gte', } ))
在您的管理员中:
from django_admin_search.admin import AdvacedSearchAdmin from .models import YourModel from .form import YourForm, YourFormSearch @register(YourModel) class YourAdmin(AdvacedSearchAdmin): form = YourForm search_form = YourFormSearch
高级:
同一字段中的多个筛选器:
class YourFormSearch(Form): ... name = CharField(required=False) begin = DateField(required=False, widget=TextInput( attrs={ 'filter_field': 'date', 'filter_method': '__gte', } )) end = DateField(required=False, widget=TextInput( attrs={ 'filter_field': 'date', 'filter_method': '__lte', } ))
添加占位符和掩码
class YourFormSearch(Form): ... date = DateField(required=False, widget=TextInput( attrs={ 'data-mask': "00/00/0000", 'placeholder': 'MM/DD/YYYY' } ))
字段的自定义筛选查询
from django_admin_search.admin import AdvacedSearchAdmin from .models import YourModel from .form import YourForm, YourFormSearch @register(YourModel) class YourAdmin(AdvacedSearchAdmin): def search_FieldNameHere(request, field_value, param_values): """ intercept query filter for description field """ query = Q() # your Q logic here return query