首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在list_filter django中添加搜索框?

在Django的Admin后台中,可以使用list_filter字段来添加过滤器,以便按特定字段对数据进行筛选。然而,list_filter默认只提供简单的选择过滤器,没有搜索框功能。

要在list_filter中添加搜索框,可以通过自定义过滤器来实现。首先,在你的Admin类中,定义一个新的过滤器类,继承自django.contrib.admin.SimpleListFilter。然后,重写lookups方法来定义过滤器选项,以及queryset方法来处理筛选逻辑。

以下是一个示例代码,演示如何添加搜索框到list_filter中:

代码语言:txt
复制
from django.contrib import admin
from django.utils.translation import gettext_lazy as _

class SearchFilter(admin.SimpleListFilter):
    title = _('Search')
    parameter_name = 'search'

    def lookups(self, request, model_admin):
        return (
            ('keyword', _('Keyword')),
        )

    def queryset(self, request, queryset):
        if self.value() == 'keyword':
            keyword = request.GET.get('q', '')
            if keyword:
                queryset = queryset.filter(name__icontains=keyword)
        return queryset

class YourModelAdmin(admin.ModelAdmin):
    list_filter = (SearchFilter,)

admin.site.register(YourModel, YourModelAdmin)

在上述示例中,我们定义了一个SearchFilter类作为过滤器,标题为"Search",参数名称为"search"。lookups方法返回过滤器选项,这里只有一个选项"Keyword"。queryset方法用于处理筛选逻辑,通过获取GET参数q来获取搜索关键字,并使用icontains查询过滤模型的name字段。

将自定义的过滤器类SearchFilter添加到list_filter中,即可在Admin后台的列表页面中看到搜索框。用户可以输入关键字进行筛选,结果将根据输入的关键字过滤显示。

腾讯云相关产品和产品介绍链接地址:

  • 云服务器(ECS):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb-for-mysql
  • 人工智能平台(AI平台):https://cloud.tencent.com/product/tia
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 云原生容器服务(TKE):https://cloud.tencent.com/product/tke
  • 腾讯智能视频(智能剪辑):https://cloud.tencent.com/product/vod
  • 物联网开发平台(IoT):https://cloud.tencent.com/product/iotexplorer
  • 腾讯移动开发平台(腾讯云移动开发):https://cloud.tencent.com/product/dvs
  • 区块链服务(BCS):https://cloud.tencent.com/product/bcs
  • 云游戏解决方案:https://cloud.tencent.com/solution/cloud-gaming
  • 腾讯元宇宙解决方案:https://cloud.tencent.com/solution/meta-universe
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

何在你的 wordpress 网站添加搜索

摸鱼学习交流群】 免费且实用的 前端刷题(面经大全)网站:点击跳转到网站 博主前些天发现了一个巨牛巨好用的刷题网站,忍不住分享一下给大家,点击跳转到网站 如果你的主题不提供在你的 WordPress 网站包含搜索的功能...转到添加新插件部分并搜索 Ivory Search (by Ivory Search)。 单击立即安装,然后激活它们。 一个新的象牙搜索选项卡出现在左侧的仪表板上。...Includes 部分允许你包含你希望用户搜索的所有内容。例如,你可以只允许用户搜索电子商务网站的产品,也可以允许他/她搜索某些页面或附件。...当你在 Ivory Search 表单工作时,将鼠标悬停到 Settings 选项(在 Ivory Search 下仪表板的左侧面板上),以设置搜索的位置。这可以在页眉或页脚或水平菜单等。...菜单搜索部分可用的选项是特定于主题的。 在“Settings”部分,你可以设置搜索的外观。

3.9K31

何在keras添加自己的优化器(adam等)

Anaconda3\envs\tensorflow-gpu\Lib\site-packages\tensorflow\python\keras 3、找到keras目录下的optimizers.py文件并添加自己的优化器...找到optimizers.py的adam等优化器类并在后面添加自己的优化器类 以本文来说,我在第718行添加如下代码 @tf_export('keras.optimizers.adamsss') class...Adamsss, self).get_config() return dict(list(base_config.items()) + list(config.items())) 然后修改之后的优化器调用类添加我自己的优化器...# 传入优化器名称: 默认参数将被采用 model.compile(loss=’mean_squared_error’, optimizer=’sgd’) 以上这篇如何在keras添加自己的优化器...(adam等)就是小编分享给大家的全部内容了,希望能给大家一个参考。

45K30
  • Django学习笔记 1.7 自定义 admin 站点

    作者: iotisan 前言 这节笔记将更加深入地处理 admin 站点,包括修改表单更加直观呈现模型数据,快速添加关联对象,以及后台涉及的列表展示、过滤器、搜索等操作。...为此,使用 list_display 后台选项,它是一个包含要显示的字段名的元组,在更改列表页以列的形式展示这个对象: class QuestionAdmin(admin.ModelAdmin):...将以下代码添加至 QuestionAdmin: list_filter = ['pub_date'] 这样做添加了一个“过滤器”侧边栏,允许人们以 pub_date 字段来过滤列表: 3.3 搜索 让我们再扩充些功能...: search_fields = [‘question_text’] 在列表的顶部增加一个搜索。...当输入待搜项时,Django搜索 question_text 字段。

    99120

    python Django 管理站点1.3

    为此,Django会根据定义的模型类完全自动地生成管理模块 使用django的管理 创建一个管理员用户 python manage.py createsuperuser,按提示输入用户名、邮箱、密码 启动服务器...from models import BookInfo admin.site.register(BookInfo) 刷新管理页面,可以对BookInfo的数据进行增删改查操作 问题:如果在str方法返回中文...,在修改和添加时会报ascii的错误 解决:在str()方法,将字符串末尾添加“.encode('utf-8')” 自定义管理页面 Django提供了admin.ModelAdmin类 通过定义ModelAdmin...:过滤字段,过滤会出现在右侧 list_filter = ['btitle'] search_fields:搜索字段,搜索会出现在上侧 search_fields = ['btitle'] list_per_page...:分页,分页会出现在下侧 list_per_page = 10 添加、修改页属性 fields:属性的先后顺序 fields = ['bpub_date', 'btitle'] fieldsets:属性分组

    49520

    Django3.2边学边记—Adimn站点管理

    ,主要包括在列表页的展示方式、添加修改页的展示方式 上文中展示了TestAdmin类的一种注册方法,还有一种方法,就是使用装饰器注册,如下: 123 @admin.register(Test)class...(admin.ModelAdmin):    list_filter = ['is_delete'] 搜索 用 search_fields,在管理启用搜索。 ...12 class TestAdmin(admin.ModelAdmin):    search_fields = ['id','name'] 在搜索中进行搜索时,Django 会将搜索查询拆分成多个词...例如,如果 search_fields 设置为 ['first_name', 'last_name'],用户搜索 john lennon',Django 会做相当于这个 SQL WHERE 子句。...我的理解就是分组整体匹配(Django3.2新增),例如,如果用户搜索 "john winston" 或 'john winston',Django 会做相当于这个 SQL 的 WHERE 子句: 1

    1.2K00

    Django3.2边学边记—Adimn站点管理

    ,主要包括在列表页的展示方式、添加修改页的展示方式 上文中展示了TestAdmin类的一种注册方法,还有一种方法,就是使用装饰器注册,如下: 123 @admin.register(Test)class... = 'unknown' 以上通过指定方法属性来控制显示是新老版本通用的,在Django3.2可以通过给装饰器传参来解决:   在model.py: 1234567891011121314151617...搜索 用 search_fields,在管理启用搜索。 ...12 class TestAdmin(admin.ModelAdmin):    search_fields = ['id','name'] 在搜索中进行搜索时,Django 会将搜索查询拆分成多个词...我的理解就是分组整体匹配(Django3.2新增),例如,如果用户搜索 "john winston" 或 'john winston',Django 会做相当于这个 SQL 的 WHERE 子句: 1

    1.3K30

    Django Admin后台管理:高效开发与实践

    配置选项:在Admin类,可以设置各种选项,list_display用于指定列表页面显示的字段,search_fields用于添加搜索等。...添加操作按钮:使用actions属性来添加批量操作,批量删除或标记为已读。 2.5 使用内联模型 内联模型允许在父模型的编辑页面中直接编辑相关联的模型。...使用内联模型:在父模型的Admin类添加内联模型,inlines = [RelatedModelInline]。...第3章:权限和用户管理 3.1 Django的认证系统概述 AD:专业搜索引擎 Django自带了一个强大的认证系统,用于处理用户认证、授权和用户管理。...自定义字段:可以在自定义用户模型添加额外的字段,手机号码、地址等。 自定义认证后端:可以编写自定义的认证后端来处理特定的认证逻辑。

    16710

    Django 上传图片和Admin站点5.2

    项中加入django.contrib.admin,Django就会自动搜索每个应用的admin模块并将其导入 ModelAdmin对象 ModelAdmin类是模型在Admin界面的表示形式 定义:定义一个类...列表类型 在列表,可以是字段名称,也可以是方法名称,但是方法名称默认不能排序 在方法可以使用format_html()输出html内容 在models.py文件 from django.db import...list_filter = ['hname', 'hcontent'] list_per_page 每页显示多少项,默认设置为100 class HeroAdmin(admin.ModelAdmin)...list_per_page = 10 search_fields 搜索 列表类型,表示在这些字段上进行搜索 只能接收字段 class HeroAdmin(admin.ModelAdmin):...', {'fields': ('hcontent')}) ) fields与fieldsets两者选一 InlineModelAdmin对象 类型InlineModelAdmin:表示在模型的添加或修改页面嵌入关联模型的添加或修改

    47230

    Django Admin后台管理

    但在模型类为字段方法设置第一个参数verbose_name可以实现自定义标题,ame = models.CharField(verbose_name='学校名', max_length=20)。...上方搜索,用于对指定字段的值进行搜索,支持模糊查询,通过search_fields属性进行设置。...= ['name'] # 搜索 search_fields = ['name'] 效果如下。...5.其他 富文本编辑器 后台管理员如果需要在后台编辑带样式的文字,编辑对商品的详细信息描述,就需要使用富文本编辑器。这里以tinymce为例在Django Admin后台中如何使用富文本编辑器。...url(r'^tinymce/', include('tinymce.urls')), # 富文本编辑器 随后就可在模型类中使用该字段,在应用的models.py添加如下内容 from django.db

    2.8K10

    Django开发在线教育平台--学习整理(一)

    导航栏: 公开课,授课讲师,授课机构,全局搜索。 点击公开课–> 课程列表,排序-搜索。热门课程推荐,课程的分页。 点击课程–> 课程详情页对课程进行收藏,取消收藏。富文本展示课程内容。...课程列表页:过滤器->选择字段范围等,搜索,导出csv,xml,json。 课程新增页面上传图片,富文本的编辑。时间选择,添加章节,添加课程资源。...使用upload_to='uploads/%Y/%m/%d/',文件会上传到MEDIA_ROOT/uploads/2015/01/30, /%Y/%m/%d/为strftime()格式化的xxxx年...5、choices用于选择,在使用前应该在class定义一个可迭代对象,[(A, B), (A, B) ...]...admin.site.register(CourseResource, CourseResourceAdmin) 常用几个功能: list_display:设置修改页面显示哪些字段 search_fields:设置搜索搜索数据

    3K90

    35.Django2.0文档

    其它的django.contrib应用程序,django.contrib.redirects,其它从网上下在的第三方Django应用程序一样,都会自行添加到管理工具。  ...让我们把它添加到BookAdmin,然后看看它的效果。...例如,我们的book数据库膨胀到拥有数千条publishers的记录,以致于book的添加页面装载时间较久,因为它必须把每一个publisher都装载并显示在`` 下拉`` 。...在这个输入,你输入什么呢? publisher的数据库ID号。 考虑到人们通常不会记住这些数据库ID,管理工具提供了一个放大镜图标方便你输入。...管理界面每种可编辑的对象(:books、authors、publishers)都有三种权限:创建许可,编辑许可和删除许可。 给一个用户授权许可也就表明该用户可以进行许可描述的操作。

    11.3K100

    Django2.0文(admin)

    createsuperuser 2 urls.py: admin/ include(admin.site.urls) 3 注册管理的models admin.site.register(Object) from django.contrib...verbose_name='' email = models.EmailField(blank=True, verbose_name='e-mail' ) 6 自定义ModelAdmin from django.contrib...默认地,管理工具使用下拉 来展现外键 字段。但是,正如多对多字段 那样,有时候你不想忍受因装载并显示这些选项而产生的大量开销。...例如,我们的book数据库膨胀到拥有数千条publishers的记录,以致于book的添加页面装载时间较久,因为它必须把每一个publishe都装载并显示在下拉 9 ForeignKey:用raw_id_fields...class BookAdmin(admin.ModelAdmin): list_display = ('title', 'publisher', 'publication_date') list_filter

    43920
    领券