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

在Django Admin中,你能根据搜索结果限制过滤选项吗?

在Django Admin中,可以根据搜索结果限制过滤选项。Django Admin提供了一个强大的搜索功能,可以根据指定的字段进行搜索,并且可以通过自定义过滤器来限制搜索结果。通过在Admin类中定义search_fields属性,可以指定要搜索的字段。例如:

代码语言:txt
复制
class MyModelAdmin(admin.ModelAdmin):
    search_fields = ['field1', 'field2']

上述代码中,我们在Admin类中定义了search_fields属性,指定了要搜索的字段为'field1'和'field2'。这样,在Django Admin的搜索框中输入关键字后,系统会根据这些字段进行搜索,并显示匹配的结果。

此外,还可以通过重写get_search_results方法来自定义搜索逻辑。get_search_results方法接收两个参数:request和queryset。可以在该方法中对queryset进行过滤,以限制搜索结果。例如:

代码语言:txt
复制
class MyModelAdmin(admin.ModelAdmin):
    def get_search_results(self, request, queryset, search_term):
        queryset, use_distinct = super().get_search_results(request, queryset, search_term)
        # 自定义过滤逻辑
        queryset = queryset.filter(some_field=some_value)
        return queryset, use_distinct

上述代码中,我们重写了get_search_results方法,并在其中对queryset进行了自定义的过滤操作。这样,在搜索结果中只会显示满足自定义过滤条件的数据。

总结:在Django Admin中,可以通过定义search_fields属性和重写get_search_results方法来限制过滤选项,实现根据搜索结果进行过滤的功能。

推荐的腾讯云相关产品:腾讯云服务器(CVM)和腾讯云数据库(TencentDB)。腾讯云服务器提供了高性能、可扩展的云服务器实例,可满足各种规模的应用需求;腾讯云数据库提供了稳定可靠的云数据库服务,支持多种数据库引擎,适用于各种应用场景。

腾讯云服务器产品介绍链接:https://cloud.tencent.com/product/cvm 腾讯云数据库产品介绍链接:https://cloud.tencent.com/product/cdb

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

作者: iotisan 前言 这节笔记将更加深入地处理 admin 站点,包括修改表单更加直观呈现模型数据,快速添加关联对象,以及后台涉及的列表展示、过滤器、搜索框等操作。...通常来说,期望自定义表单的外观和工作方式。可以注册模型时将这些设置告诉 Django。...为此,使用 list_display 后台选项,它是一个包含要显示的字段名的元组,更改列表页以列的形式展示这个对象: class QuestionAdmin(admin.ModelAdmin):...: search_fields = [‘question_text’] 列表的顶部增加一个搜索框。...可以使用任意多的字段——由于后台使用 LIKE 来查询数据,将待搜索的字段数限制为一个不会出问题大小,会便于数据库进行查询操作。 END ----

97920

Django快速入门——投票程序(7) 自定义后台

自定义后台更改列表 现在投票的后台页看起来很不错,让我们对问题列表页面进行一些调整——改成一个展示系统中所有投票的页面。默认情况下,Django 显示每个对象的 str() 返回的值。...为此,使用 list_display属性,它是一个包含要显示的字段名的元组,更改列表页以列的形式展示这个对象: class QuestionAdmin(admin.ModelAdmin):...list_display = ["question_text", "pub_date", "was_published_recently"] 可以通过该方法上( polls/models.py ...字段来过滤列表: 让我们再添加搜索功能: search_fields = ["question_text"] 列表的顶部有了一个搜索框。...当输入待搜项时,Django搜索 question_text 字段。

19540

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

准备工作 创建管理员的用户名和密码:  1 python manage.py createsuperuser   根据提示创建用户名 密码 admin.py中注册模型类 1234567 from django.contrib...类可以控制不同模型Admin界面的展示方式,主要包括列表页的展示方式、添加修改页的展示方式 上文中展示了TestAdmin类的一种注册方法,还有一种方法,就是使用装饰器注册,如下: 123 @admin.register...可以用empty_value_display 属性更改 123 from django.contrib import admin  ...  ...12 class TestAdmin(admin.ModelAdmin):    search_fields = ['id','name'] 搜索框中进行搜索时,Django 会将搜索查询拆分成多个词...,可以使用 ModelAdmin.get_search_results() 来提供额外的或替代的搜索行为。

1.1K00

35.Django2.0文档

不允许同一个模板定义多个同名的 {% block %} 。 存在这样的限制是因为block 标签的工作方式是双 向的。...所以,如果结果是多个对象,会导致抛出异常: ? 如果查询没有返回结果也会抛出异常:  6.数据排序 在运行前面的例子可能已经注意到返回的结果是无序的。...我们还没有告诉数据库 怎样对结果进行排序,所以我们返回的结果是无序的。 在你的 Django 应用或许希望根据某字段的值对检索结果排序,比如说,按字母顺序。...限制返回的数据 ? 7.更新和删除对象 update()方法对于任何结果集(QuerySet)均有效,这意味着可以同时更新多条记录。...除了这些,Django还提供了大量选项针对特别的模块自定义管理工具。 这些选项都在ModelAdminclasses里面,这些类包含了管理工具针对特别模块的配置。

11.2K100

百度低质回答是如何坑了

昨天某个新手又抛出来个问题:为什么找不到 django-admin 可执行程序?我一看这不是 Python 高频问题之一1。...就问他PATH是怎么设置的,结果他把django-admin 复制到了site-packages/django/bin下面。...这就好比上数学课,一道应用题的解法可以有很多种,有的甚至试几个整数就能得到答案,那么我能把这题的题解写成「尝试数字 3, 5,满足题设,此即答案」?显然不能。...另一方面,一个新手遇到一个问题的时候,也只是把错误信息复制到搜索框里,得到的结果也肯定是那些针对具体问题的解决方法。缺乏提炼的问题,搜索到的也肯定是缺乏提炼的答案。...实在提炼不了规律,请人工筛选搜索结果来源,Github, StackOverflow 是的首选。

12250

37.Django1.11.6文档

但是,如果使用了values()子句,它就会限制结果列的范围,对注解赋值的方法就会完全不同。...不是原始的 QuerySet返回结果对每个对象添加注解,而是根据定义values() 子句中的字段组合先对结果进行唯一的分组, 然后为每个唯一组提供注释;组的所有成员上计算注释。...如果Django 文档做一次搜索会立即看到这点,此时将生成一个https://docs.djangoproject.com/search/?...添加一个 ManyToManyField到该列表将使用一个漂亮的低调的JavaScript的“过滤器”界面,允许搜索选项。 选和不选选项框并排出现。 ...它接受请求,应用当前过滤器的查询集以及用户提供的搜索项。 它返回一个包含被修改以实现搜索的查询集的元组,以及一个指示结果是否可能包含重复项的布尔值。

24.2K80

Python自动化开发学习-Django

django amdin是django提供的一个后台管理页面,该管理页面提供完善的html和css,使得通过Model创建完数据库表之后,就可以对数据进行增删改查。...开启过滤器 继续类里添加下面的属性: list_filter = ('gender', 'dept') 添加了过滤器后,右边就会出现一个过滤器的部件,也可以帮助我们筛选记录。...选项特别适合用过滤器来筛选。 开启分页 就是限制每页显示的记录数 继续类里添加下面的属性: list_per_page = 3 防止记录太多,记得设置分页。...不过后面有个搜索按钮,可以点开来选择对象的选项。单选并且选项多的时候,可以提升使用的体验。...# 如果有request,就不需要调用resolve方法了,django已经帮我们把结果封装到了request.resolver_match里了。

1.7K30

django 学习笔记一

也可以放在 setting 自定义设置要求 设置名称全部是大写 不要使用一个已经存在的设置 global_setting.py 目录并没有此文件,此文件路径 django/conf/global_setting...的不同 ---- 官方文档 也说明了其他方法设置 “设置文件的路径” Mac 中有两种方式: # 第一种 export DJANGO_SETTINGS_MODULE=mysite.settings...python manage.py sqlmigrate polls 0001 修改的模型(models.py文件)。...通常,会想要自定义管理界面中表单的外观和功能。 可以通过注册对象的时候告知Django一些你想要的选项来完成。 让我们通过对编辑表单上的字段重新排序来看一下它是如何工作的。...【说明】以下的例子是可以更改排列顺序的例子(更改编辑界面的顺序) admin.py 文件admin.site.register(Question)行替换成: from .models import

99620

Django admin管理工具的使用、定制及源码解析

可以项目的 settings.py 的 INSTALLED_APPS 看到它: # Application definition INSTALLED_APPS = [ 'django.contrib.admin...的定制 admin.py只需要讲Mode的某个类注册,即可在Admin实现增删改查的功能,如: admin.site.register(models.UserInfo) 但是,这种方式比较简单,...一般ManyToManyField多对多字段用过滤器;标题等文本字段用搜索框;日期时间用分层筛选。 过滤器如果是外键需要遵循这样的语法:本表字段__外键表要显示的字段。...,使之显示过滤后的数据 下面的代码表示,car字段会根据当前登录的用户显示此用户所拥有的车 1 2 3 4 5 class MyModelAdmin(admin.ModelAdmin...最终生成的结果就是可以选择所有的省,也可以选择所有的市,这并不合理,正确的应该是选择某个省的时候市的下拉列表里只有该省的城市。 而,django原生并不能做到这么智能。

4K40

Django 3.1 官网学习路线

我们的投票应用程序,我们将有以下四个视图: 问题“索引”页面-显示最近的几个问题。 问题“细节”页面-显示一个问题文本,没有结果,但有一个表格来投票。 问题“结果”页面-显示特定问题的结果。...可以通过注册对象时告诉 Django 所需的选项来实现。 通过重新排列编辑表单的字段来了解其工作原理。...Choice, Question # ... admin.site.register(Choice) 现在,“选择”是 Django 管理员的可用选项。...由于 pub_date 是 DateTimeField,因此 Django 知道提供适当的过滤选项:“任何日期”,“今天”,“过去 7 天”,“本月”,“今年”。 这很好。...更改列表分页、搜索框、过滤器、日期层次结构和列标题排序都像您认为的那样协同工作。

8.1K10

Django管理后台技巧分享之实例关系的搜索,autocomplete_fields字段使用

最近博客在做新功能,就是增加了两个模型,分别是专题和主题,主要就是用来对文章进行系列划分,在这个设计过程,文章和主题会进行一个关联,当主题的数量很多的时候,文章选择要关联的主题的时候会非常难选。...我希望文章选择主题的时候可以输入关键字来搜过滤,这样可以减少可选项。基于这个需求,我又重新去看了一下Django关于admin的教程,终于找到了方法,现在分享一下。...,前提是外键的管理模型必须设置search_fields作为搜索条件 autocomplete_fields = ['topic'] 看一下效果: 这里已经出现了搜索框,可以通过搜索条件来过滤选项...总结 本篇介绍了Djangoadmin.ModelAdmin中使用autocomplete_fields字段来给关联模型添加过滤搜索。...这样一个实例选择关联实例的时候可以使用条件搜索减少可选项,方便选择。

45920

django2实战2.创建博客应用创建应用文章表的字段设计激活应用开启后台将post模型注册到后台自定义文章显示字段增加可选操作

而淘宝下的聚划算属于一个应用 django,一个应用是由模型、视图、模板以及url配置组成的。...提示找不到blog应用,这是因为每添加一个应用,都需要到settings.py激活 mysite/settings.py INSTALLED_APPS = [ 'django.contrib.admin...admin index 将post模型注册到后台 blog/admin.py from django.contrib import admin from .models import Post admin.site.register...搜索 侧边栏过滤选项 ? 过滤 下一节将讲解如何使用django的模型查询语句。...如果感兴趣,请关注我的django2实战文集 如果觉得本文对有所帮助,点个赞,或者赏杯咖啡钱,的认可对我很重要

1K30

django 1.8 官方文档翻译: 1-2-2 编写的第一个Django应用,第2部分

哲理 为的员工或客户生成添加、修改和删除内容的管理性网站是个单调乏味的工作。 出于这个原因,Django 根据模型完全自动化创建管理界面。...可以切换到对应的旧版本教程去或者更新到较新的 Django 版本。 进入管理网站 现在尝试登录进去。(还记得本教程的第一部分时创建过一个超级用户的帐号。...这很简单: from polls.models import Choice admin.site.register(Choice) 现在 “Choices” Django 管理网站上是一个可用的选项了...让我们来加上搜索功能:: search_fields = ['question'] chang list 页的顶部增加了一个搜索框。...当有人输入了搜索条件, Django搜索 question 字段。 虽然可以使用任意数量的字段,如你希望的那样 – 但是因为它在后台用 LIKE 查询,为了保持数据库的性能请合理使用。

2.5K40

Django使用】md文档10大模块第5期:Django数据库增删改查和Django视图

它强调代码复用,多个组件可以很方便的以"插件"形式服务于整个框架,Django有许多功能强大的第三方插件,甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。...查询集,也称查询结果集、QuerySet,表示从数据库的对象集合。当调用如下过滤器方法时,Django会返回查询集(而不是简单的列表):all():返回所有数据。...过滤器基于所给的参数限制查询的结果。从SQL的角度讲,查询集与select语句等价,过滤器像where、limit、order by子句。...指定url配置ROOT_URLCONF = 'bookmanager.urls'项目中urls.py:只要不是admin/就匹配成功,包含到应用的urls.pyfrom django.conf.urls...Chrome 的扩展程序页面,打开开发者模式选项 将插件文件夹拖入到浏览器(或者点击加载已解压的扩展程序选择文件夹) Mac 下生成桌面图标,可以点击启动 ubuntu 旧版的 Chrome 浏览器中会显示以下效果

22310

Python全栈开发之Django基础

两个特性 惰性 创建查询集不会访问数据库,直到调用数据时,才会访问数据库 缓存 使用同一个结果集,第一次使用会触发查询数据库,然后将结果缓存下载,再次使用直接调用缓存 限制结果集 可以对结果集进行切片操作...后,会在Cookie存储一个sessionid的数据,每次请求时浏览器都会将这个数据发给服务器,服务器接收到sessionid后,会根据这个值找出这个请求者的Session 对象及方法 以键值对的格式写...session request.session['键']=值 根据键读取值 request.session.get('键',默认值) 清除所有session,存储删除值部分 request.session.clear...语法:变量|过滤器:参数 data|default:'默认值' 更多内建过滤器 自定义过滤应用创建templatetags目录 该目录下创建filters.py文件 #导入Library类...No.6 后台 内容发布的部分由网站的管理员负责查看、添加、修改、删除数据,开发这些重复的功能是一件单调乏味、缺乏创造力的工作,为此,Django能够根据定义的模型类自动地生成管理模块 页选项 页大小

3.7K20

Django之templatetags自定义标签和过滤器的使用

一、前置步骤 Django对于自定义标签和过滤器是有前置要求的,首先一条就是代码布局和文件组织。 可以为的自定义标签和过滤器新开一个app,也可以原有的某个app添加。...假设自定义的标签/过滤一个名为poll_extras.py的文件,那么的app目录结构看起来应该是这样的: polls/     __init__.py     models.py    ...然后就可以模板像如下这样使用: {% load poll_extras %} templatetags包中放多少个模块没有限制。...例如,DjangoAdmin界面使用自定义模板标签显示"添加/更改"表单页面底部的按钮。这些按钮看起来总是相同,但链接的目标却是根据正在编辑的对象而变化的。...下面,展示一个根据给定的tutorials创建的Poll对象输出一个选项列表的自定义Inclusion标签。

1.6K20
领券