如上图所示djangoadmin在ModelAdmin中添加searchfields即可显示一个搜索框,但是不能设置搜索框的提示文字,在实际开发中要让使用的人知道输入什么可以进行快速检索,是一个快速提升用户体验的方法,在网上找了很多,也没有很好的解决这个问题,今天我们就动手实现一个! 我这里已经通过下方命令创建了一个名为dadmin的apppythonmanage。pystartappdadmin 在dadmin目录下新建一个templatetags的文件夹,并且在其内部创建一个searchwithplaceholder。py的文件,内部代码如下:dadmintemplatetagssearchwithplaceholder。pyfromdjango。contrib。admin。templatetags。adminlistimport(register,searchform)fromdjango。contrib。admin。templatetags。baseimportInclusionAdminNodedefsearchformplus(cl,searchplaceholder:str):Displayasearchformforsearchingthelistwithplaceholder。returndict(searchform(cl),searchplaceholdersearchplaceholder)register。tag(namesearchformplus)defsearchformtag(parser,token):returnInclusionAdminNode(parser,token,funcsearchformplus,templatenamesearchformplus。html,takescontextFalse) 在与项目同级别,也就是根目录,创建一个templates的目录,再在其内部创建一个admin文件夹,重写admin的任何默认模板只需要放到这个文件夹即可,这也是修改djangoadmin默认模板最简便的方法,我们在其内部创建一个searchformplus。html的文件,内部代码如下:{loadi18nstatic}{ifcl。searchfields}{endif} 再在dadmin目录下创建一个templatesdadmin的文件夹路径,再在其内部创建一个changelist。html的文件,内部代码如下:!完整文件路径,这是注释,模板中可以删掉dadmintemplatesdadminchangelist。html{extendsadminchangelist。html}{loadsearchwithplaceholder}{blocksearch}{searchformplusclsearchplaceholder}{endblock} 之后在dadmin目录中的admin。py中定义一个所有ModelAdmin的基础类BaseAdmin,以后所有用到ModelAdmin的地方我们都继承BaseAdmin即可,代码如下:classBaseAdmin(admin。ModelAdmin):changelisttemplatedadminchangelist。htmldefchangelistview(self,request,extracontextNone):列表视图,添加searchplaceholder即可定义搜索框的值,也可以向列表页得传进任何数据searchplaceholdergetattr(self,searchplaceholder,False)ifsearchplaceholder:extracontextextracontextor{}extracontext〔searchplaceholder〕searchplaceholderreturnsuper()。changelistview(request,extracontextextracontext) 使用也非常简单,所有的ModelAdmin都只需要继承他即可,如下例所示:classCategoryModelAdmin(BaseAdmin):分类管理配置listdisplay(id,name,isshow,cateicon,sort,adddate,operate)searchfields(name,)设置搜索框searchplaceholder请输入分类名称搜索设置搜索框的提示文字admin。site。register(CategoryModel,CategoryModelAdmin) 其他列表页也需要设置搜索框文字,继承BaseAdmin即可,非常简单,直接拿去使用吧! 相关源代码请参考:https:gitee。comxingfugzdjangomall 如果你也在学习django,那么欢迎私信小编一起交流学习,欢迎star以上项目,给个鼓励,也欢迎您能关注我的头条号,一起学习交流,上边有很多学习资料哦!(此处已添加圈子卡片,请到今日头条客户端查看)