久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:12日期:2024-09-11 14:40:13

本文主要介紹了django admin search_fields placeholder 管理后臺添加搜索框提示文字,分享給大家,具體如下:

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

如圖, Django admin后臺生成的搜索框, 默認是沒有提示文字的, 不夠友好; 網(wǎng)上也沒搜到什么好的示例, 于是自己動手實現(xiàn)了一個

0. 已經(jīng)存在的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(’小區(qū)ID’) class Meta: verbose_name = verbose_name_plural = ’輪播設置’```

1. 定制模板標簽templatetags

mkdir -p carousel/templatetagstouch carousel/templatetags/__init__.pytouch carousel/templatetags/search_with_placeholder.py

# carousel/templatetags/search_with_placeholder.pyfrom 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/adminmkdir -p carousel/templates/custom_admintouch carousel/templates/admin/search_form_plus.htmltouch carousel/templates/custom_admin/change_list.html

<!-- carousel/templates/admin/search_form_plus.html -->{% load i18n static %}{% if cl.search_fields %}<div id='toolbar'><form method='get'><div><!-- DIV needed for valid HTML --><label for='searchbar'><img src='http://www.baoyu77737.com/bcjs/{% static 'admin/img/search.svg' %}' alt='Search'></label><input type='text' size='40' name='{{ search_var }}' placeholder='{{ search_placeholder }}' value='{{ cl.query }}' autofocus><input type='submit' value='{% translate ’Search’ %}'>{% if show_result_count %} <span class='small quiet'>{% blocktranslate count counter=cl.result_count %}{{ counter }} result{% plural %}{{ counter }} results{% endblocktranslate %} (<a href='http://www.baoyu77737.com/bcjs/?{% if cl.is_popup %}_popup=1{% endif %}' rel='external nofollow' >{% 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 %}</a>)</span>{% endif %}{% for pair in cl.params.items %} {% if pair.0 != search_var %}<input type='hidden' name='{{ pair.0 }}' value='{{ pair.1 }}'>{% endif %}{% endfor %}</div></form></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.1from 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 = '請輸入小區(qū)ID'

其他列表頁, 如果也想顯示提示文字, 只需繼承PlaceholderMixin, 然后定義search_placeholder就可以了

到此這篇關于django admin search_fields placeholder 管理后臺添加搜索框提示文字的文章就介紹到這了,更多相關django admin search_fields placeholder搜索框內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Django
相關文章:
主站蜘蛛池模板: 张家港市| 耿马| 呼伦贝尔市| 河池市| 吴桥县| 萍乡市| 瑞金市| 临沂市| 福安市| 尚志市| 襄垣县| 奇台县| 洛南县| 东方市| 勃利县| 晴隆县| 漯河市| 陇西县| 怀集县| 关岭| 新野县| 黑水县| 广西| 孙吴县| 巴彦县| 清徐县| 绍兴县| 凌云县| 绥阳县| 西乌| 丰宁| 扶绥县| 瑞昌市| 忻州市| 平泉县| 太谷县| 本溪| 固始县| 西和县| 阳新县| 安徽省|