• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

django admin search_fields placeholder 管理后台添加搜索框提示文字

python 搞代码 4年前 (2022-01-08) 14次浏览 已收录 0个评论

这篇文章主要介绍了django admin search_fields placeholder 管理后台添加搜索框提示文字,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

本文主要介绍了django admin search_fields placeholder 管理后台添加搜索框提示文字,分享给大家,具体如下:

如图, Django admin后台生成的搜索框, 默认是没有提示文字的, 不够友好; 网上也没搜到什么好的示例, 于是自己动手实现了一个

0. 已经存在的app名为carousel, 大致相当于如下操作/代码

 $ python manage.py startapp carousel # settings.py ``` INSTALLED_APPS = [ ... 'carousel', ] ``` # carousel/models.py ``` from django.db import models class Carousel(models.Model): community = models.IntegerField('小区ID') class Meta: verbose_name = verbose_name_plural = '轮播设置' ```

1. 定制模板标签templatetags

 mkdir -p carousel/templatetags touch carousel/templatetags/__init__.py touch carousel/templatetags/search_with_placeholder.py
 # carousel/templatetags/s<div style="color:transparent">来源gaodai.ma#com搞##代!^码网</div>earch_with_placeholder.py from django.contrib.admin.templatetags.admin_list import ( InclusionAdminNode, register, search_form, ) def search_form_plus(cl, search_placeholder: str = ""): """ Display a search form for searching the list with placeholder. """ return dict(search_form(cl), search_placeholder=search_placeholder) @register.tag(name="search_form_plus") def search_form_tag(parser, token): return InclusionAdminNode( parser, token, func=search_form_plus, template_name="search_form_plus.html", takes_context=False, )

2. 定制模板template

 mkdir -p carousel/templates/admin mkdir -p carousel/templates/custom_admin touch carousel/templates/admin/search_form_plus.html touch carousel/templates/custom_admin/change_list.html
 <!-- carousel/templates/admin/search_form_plus.html --> {% load i18n static %} {% if cl.search_fields %} <div id="toolbar"> <div><!-- DIV needed for valid HTML --><label for="searchbar"></label> {% if show_result_count %} <span class="small quiet">{% blocktranslate count counter=cl.result_count %}{{ counter }} result{% plural %}{{ counter }} results{% endblocktranslate %} ({% if cl.show_full_result_count %}{% blocktranslate with full_result_count=cl.full_result_count %}{{ full_result_count }} total{% endblocktranslate %}{% else %}{% translate "Show all" %}{% endif %})</span> {% endif %} {% for pair in cl.params.items %} {% if pair.0 != search_var %}{% endif %} {% endfor %} </div></div> {% endif %}
 <!-- carousel/templates/custom_admin/change_list.html --> {% extends "admin/change_list.html" %} {% load search_with_placeholder %} {% block search %}{% search_form_plus cl search_placeholder %}{% endblock %}

3. 定制admin.py

cat carousel/admin.py

 # Django3.1 from django.contrib import admin from .models import BoxCarousel, Carousel, class PlaceholderMixin: change_list_template = "custom_admin/change_list.html" def changelist_view(self, request, extra_context=None): search_placeholder = getattr(self, "search_placeholder", False) if search_placeholder: extra_context = extra_context or {} extra_context["search_placeholder"] = search_placeholder return super().changelist_view(request, extra_context) @admin.register(Carousel) class CarouselAdmin(PlaceholderMixin, admin.ModelAdmin): search_fields = ["=community"] search_placeholder = "请输入小区ID"

其他列表页, 如果也想显示提示文字, 只需继承PlaceholderMixin, 然后定义search_placeholder就可以了

以上就是django admin search_fields placeholder 管理后台添加搜索框提示文字的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:django admin search_fields placeholder 管理后台添加搜索框提示文字

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址