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

如何在Django admin中按值列表进行过滤?

在Django admin中,可以使用值列表进行过滤来筛选特定的数据。值列表过滤允许您根据字段的特定值来过滤查询结果。

要在Django admin中按值列表进行过滤,可以按照以下步骤操作:

  1. 打开您的Django项目中的admin.py文件。
  2. 导入您需要过滤的模型类和相关的过滤器类。例如,如果您要过滤名为"Book"的模型类,可以使用以下导入语句:
代码语言:txt
复制
from .models import Book
from django.contrib import admin
from django.contrib.admin import SimpleListFilter
  1. 创建一个自定义的过滤器类,继承自SimpleListFilter。在该类中,您需要定义过滤器的标题、查询参数和过滤逻辑。例如,如果您要按照书籍类型进行过滤,可以创建一个名为"BookTypeFilter"的过滤器类:
代码语言:txt
复制
class BookTypeFilter(SimpleListFilter):
    title = 'Book Type'  # 过滤器的标题

    parameter_name = 'book_type'  # 查询参数的名称

    def lookups(self, request, model_admin):
        # 返回一个包含过滤选项的元组列表
        return (
            ('fiction', 'Fiction'),
            ('non-fiction', 'Non-Fiction'),
        )

    def queryset(self, request, queryset):
        # 根据查询参数的值过滤查询集
        if self.value() == 'fiction':
            return queryset.filter(book_type='Fiction')
        elif self.value() == 'non-fiction':
            return queryset.filter(book_type='Non-Fiction')
  1. 在admin.py文件中注册您的模型类,并将自定义的过滤器类添加到list_filter属性中。例如:
代码语言:txt
复制
@admin.register(Book)
class BookAdmin(admin.ModelAdmin):
    list_filter = (BookTypeFilter,)
  1. 保存并重新启动您的Django开发服务器。

现在,您可以在Django admin中看到一个名为"Book Type"的过滤器,它将显示为一个下拉列表。选择其中一个选项,Django admin将根据您的选择过滤查询结果。

推荐的腾讯云相关产品:腾讯云服务器(CVM)、腾讯云数据库MySQL版、腾讯云对象存储(COS)。

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

  • 腾讯云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云数据库MySQL版:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

35.Django2.0文档

它返回的字典对所有局部变量的名称与进行映射。...一般来说,基础模板的 {% block %} 标签越多越好。 记住,子模板不必定义父模板中所有的代码块,因 此你可以用合理的缺省对一些代码块进行填充,然后只对子模板所需的代码块进行(重)定义。...在你的 Django 应用,你或许希望根据某字段的对检索结果排序,比如说,字母顺序。 那么,使用order_by()这个方法就可以搞定了。 ?...(3)添加过滤器 接下来,让我们为Book列表页添加一些过滤器。...管理界面每种可编辑的对象(:books、authors、publishers)都有三种权限:创建许可,编辑许可和删除许可。 给一个用户授权许可也就表明该用户可以进行许可描述的操作。

11.3K100

Admin站点

在创建应用时,Django会向apps.py文件写入一个该应用的配置类, from django.apps import AppConfig class BooktestConfig(AppConfig...在列表页中点击"增加"可以进入增加页,Django会根据模型类的不同,生成不同的表单控件,提示填写表单内容后点击"保存",完成数据创建,创建成功后返回列表页。 ?...点击执行后进入确认页面,删除后回来列表页面。 ? 定义与使用Admin管理类 Django提供的Admin站点的展示效果可以通过自定义ModelAdmin类来进行控制。...右侧栏过滤器 属性如下,只能接收字段,会将对应字段的列出来,用于快速过滤。一般用于有重复的字段。...list_filter = ['hbook', 'hgender'] 2)在浏览器刷新效果如下图: ? g. 搜索框 属性如下,用于对指定字段的进行搜索,支持模糊查询。

2.1K20

django框架菜鸟教程_django框架菜鸟教程

MVT M全拼为Model,与MVC的M功能相同,负责和数据库交互,进行数据处理。 V全拼为View,与MVC的C功能相同,接收请求,进行业务处理,返回应答。...路由解析顺序 Django在接收到一个请求时,从主路由文件的urlpatterns列表以由上至下的顺序查找对应路由规则,如果发现规则为include包含,则再进入被包含的urls的urlpatterns...列表由上至下进行查询。...,列表返回,可以获取指定键的所有 如果键不存在则返回空列表[],可以设置默认进行后续处理 dict.getlist(‘键’,默认) 3)查询字符串 通过request.GET属性获取,返回...列表添加此类 4、注册模型类 # 在booktest/admin.py 文件编写代码: from django.contrib import admin from booktest.models import

3K40

Django Admin后台管理

runserver,在浏览器输入http://127.0.0.1:8000/admin/ 输入之前创建的超级管理员账号密码后,进行登陆。...(StudentInfo) 显示效果如下 list_display的项可以是模型字段,也可以是模型方法(该方法必须有返回) 修改应用下models.py的SchoolInfo类 # 学校模型类...= ['id', 'name', 'addr', 'get_name'] 显示效果如下 注:属性列在后台管理页面是可以进行排序的,而方法列是不能排序的,如果需要排序需要设置admin_order_field...右侧过滤器,会将对应字段的列出来,用于快速过滤,通过list_filters属性设置。上方搜索框,用于对指定字段的进行搜索,支持模糊查询,通过search_fields属性进行设置。...5.其他 富文本编辑器 后台管理员如果需要在后台编辑带样式的文字,编辑对商品的详细信息描述,就需要使用富文本编辑器。这里以tinymce为例在Django Admin后台中如何使用富文本编辑器。

2.8K10

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

类可以控制不同模型在Admin界面的展示方式,主要包括在列表页的展示方式、添加修改页的展示方式 上文中展示了TestAdmin类的一种注册方法,还有一种方法,就是使用装饰器注册,如下: 123 @admin.register...def atitle(self):        return self.title 以上方法显示的列是不能排序的,如果让这个方法显示的列也能排序,就给atitle方法的.admin_order_field... title2(self):        return self.title 过滤器 用 list_filter 来激活管理更改列表页面右侧侧栏的过滤器,如下截图所示: list_filter ...应是一个元素的列表或元组,会将对应字段的列出来,一般用于快速过滤有重复的字段 12 class TestAdmin(admin.ModelAdmin):    list_filter = ['is_delete...12 class TestAdmin(admin.ModelAdmin):    search_fields = ['id','name'] 在搜索框中进行搜索时,Django 会将搜索查询拆分成多个词

1.1K00

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

类可以控制不同模型在Admin界面的展示方式,主要包括在列表页的展示方式、添加修改页的展示方式 上文中展示了TestAdmin类的一种注册方法,还有一种方法,就是使用装饰器注册,如下: 123 @admin.register...def atitle(self):        return self.title 以上方法显示的列是不能排序的,如果让这个方法显示的列也能排序,就给atitle方法的.admin_order_field...过滤器 用 list_filter 来激活管理更改列表页面右侧侧栏的过滤器,如下截图所示: list_filter 应是一个列表或元组,参数字段可以是模型字段,包括外键字段(注意list_display...是不能直接接收外键字段的),会将对应字段的列出来,一般用于快速过滤有重复的字段。...12 class TestAdmin(admin.ModelAdmin):    search_fields = ['id','name'] 在搜索框中进行搜索时,Django 会将搜索查询拆分成多个词

1.3K30

Django管理应用程序的高级配置在BookInstance模型的运用【Django

Django管理应用程序 Django管理应用程序可以使用的模型自动构建可用于创建、查看、更新和删除记录的站点区域。这可以在开发过程节省大量时间,使测试模型和查看是否有正确的数据变得容易。...python3 manage.py runserver 高级配置 Django使用注册模型信息创建基本管理站点: 每个模型都有一个单独的记录列表,由__ str__()方法创建并链接到详细视图/表单以进行编辑的字符串...用于编辑和添加记录的模型详细记录表单包含模型的所有字段,这些字段其声明顺序垂直排列。 可以进一步自定义界面,使其更易于使用。...添加一个筛选器,以根据日期或其他选择账面付款状态)选择要列出的记录。...in self.genre.all()[:3] ]) display_genre.short_description = 'Genre' 一旦列表中有许多项目,就可以过滤显示的项目。

1.7K20

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

自定义后台更改列表 现在投票的后台页看起来很不错,让我们对问题列表页面进行一些调整——改成一个能展示系统中所有投票的页面。默认情况下,Django 显示每个对象的 str() 返回的。...为此,使用 list_display属性,它是一个包含要显示的字段名的元组,在更改列表以列的形式展示这个对象: class QuestionAdmin(admin.ModelAdmin):...编辑文件 polls/admin.py,将以下代码添加至 QuestionAdmin: list_filter = ["pub_date"] 这样做添加了一个“过滤器”侧边栏,允许人们以 pub_date...字段来过滤列表: 让我们再添加搜索功能: search_fields = ["question_text"] 在列表的顶部有了一个搜索框。...(你可以使用任意多的字段) 说明 完整的教程可以前往官网:https://docs.djangoproject.com/zh-hans/4.2/intro/ 本教程省略了一些内容,第5部分的测试,第

20740

Django 上传图片和Admin站点5.2

站点 通过使用startproject创建的项目模版,默认Admin被启用 1.创建管理员的用户名和密码 python manage.py createsuperuser 然后提示填写用户名、邮箱、...True actions_on_bottom = True list_display 出现列表显示的字段 列表类型 在列表,可以是字段名称,也可以是方法名称,但是方法名称默认不能排序 在方法可以使用...页中注册 class HeroAdmin(admin.ModelAdmin): list_display = ['hName', 'hContent'] list_filter 右侧栏过滤器,对哪些属性的进行过滤...list_per_page = 10 search_fields 搜索框 列表类型,表示在这些字段上进行搜索 只能接收字段 class HeroAdmin(admin.ModelAdmin):...重写admin模板 在项目所在目录创建templates目录,再创建一个admin目录 设置模板查找目录:修改settings.py的TEMPLATES项,加载模板时会在DIRS列表指定的目录搜索

45830

七日Python之路--第四天(之Django官方文档)

admin.site.register(model)。这样重启服务,就能在admin管理界面上看到注册的model了,并能够对其进行新增,修改,删除操作。甚是方便!!!...引入app的urls即可 from django.conf.urls import patterns, include, url from django.contrib import admin admin.autodiscover.../', include(admin.site.urls)), url(r'',include('news.urls')) ) 当用户请求一个页面时,Django就会顺序去匹配每个模式,...路径书写时,以'templates'文件夹下根目录。 Django 有一个模板搜索路径板,它让你尽可能的减少冗余而重复利用模板。在你的 Django设置,你可以指定一个查找模板的目录列表。...这就是所谓的模板过滤器,一种通过变量来过滤的方式。本例,Python datetime 对象被过滤成指定的格式(在 PHP 的日期函数可以见到这种变换)。

48620

django入门:视图及模版

urlpatterns = [ url(r'^admin/', admin.site.urls), # include 作用:在 django 匹配 url 时候匹配完 blog/...from django.conf.urls import url from . import views # 加上 app_name, 同 include namespace 的,否则可能会找不到...,父类已经关闭则子类也关闭 5.django 常用内置模版过滤器 模板过滤器是在变量被显示前修改它的的一个简单方法,以 "|" 拼接,过滤器的参数跟随冒号之后并且总是以双引号包含,例如 {{ value...|add:"2" }} 返回为 value + 2 的 add:"n",对象相加,如果是数字则是数字加法,列表则是列表的和,无法相加为空。...对于字符串,返回字符串字符的个数 safe,当系统设置 autoescaping 打开的时候,该过滤器使得输出不进行 escape 转换 striptags,删除 value 的所有 HTML 标签

1K20

python Django 管理站点1.3

为此,Django会根据定义的模型类完全自动地生成管理模块 使用django的管理 创建一个管理员用户 python manage.py createsuperuser,提示输入用户名、邮箱、密码 启动服务器...BookInfo的数据进行增删改查操作 问题:如果在str方法返回中文,在修改和添加时会报ascii的错误 解决:在str()方法,将字符串末尾添加“.encode('utf-8')” 自定义管理页面...): ... admin.site.register(Question, QuestionAdmin) 列表页属性 list_display:显示字段,可以点击列头进行排序 list_display...= ['pk', 'btitle', 'bpub_date'] list_filter:过滤字段,过滤框会出现在右侧 list_filter = ['btitle'] search_fields:搜索字段...(BookInfo, BookInfoAdmin) 可以将内嵌的方式改为表格 class HeroInfoInline(admin.TabularInline) 布尔的显示 发布性别的显示不是一个直观的结果

47820

Django 1.10文文档-第一个应用Part7-自定义管理站点

如果我们想要同时显示一些别的内容,可以使用list_display属性,它是一个由多个字段组成的元组,其中的每一个字段都会顺序显示在页面上,代码如下: # polls/admin.py class...你可以点击其中一列的表头来让列表按照这列的进行排序,但是was_published_recently这列的表头不行,因为Django不支持按照随便一个方法的输出进行排序。...我们还可以对显示结果进行过滤,通过使用list_filter属性。...在QuestionAdmin添加下面的代码: list_filter = ['pub_date'] 它添加了一个“过滤器”侧边栏,这样就可以通过pubdate字段来过滤显示question: ?...当进行搜索时,Django将在question_text字段中进行搜索。

3.6K60

三、模型(一)

要完成该项工作,第一步是在 Django 项目中 激活这些模型。 将上面的模型所在的app添加到配置文件的已安装应用列表即可完成此步骤。...数据过滤 我们很少会一次性从数据库取出所有的数据;通常都只针对一部分数据进行操作。...在Django API,我们可以使用`` filter()`` 方法对数据进行过滤: >>> Publisher.objects.filter(name='Apress') [<Publisher:...我们还没有告诉数据库 怎样对结果进行排序,所以我们返回的结果是无序的。 在你的 Django 应用,你或许希望根据某字段的对检索结果排序,比如说,字母顺序。...连锁查询 我们已经知道如何对数据进行过滤和排序。 当然,通常我们需要同时进行过滤和排序查询的操作。

4.5K90

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

作者: iotisan 前言 这节笔记将更加深入地处理 admin 站点,包括修改表单更加直观呈现模型数据,快速添加关联对象,以及后台涉及的列表展示、过滤器、搜索框等操作。...3 自定义后台更改列表 3.1 显示列表 默认情况下,Django 显示每个对象的 str() 返回的。但有时如果我们能够显示单个字段,它会更有帮助。...为此,使用 list_display 后台选项,它是一个包含要显示的字段名的元组,在更改列表以列的形式展示这个对象: class QuestionAdmin(admin.ModelAdmin):...将以下代码添加至 QuestionAdmin: list_filter = ['pub_date'] 这样做添加了一个“过滤器”侧边栏,允许人们以 pub_date 字段来过滤列表: 3.3 搜索框 让我们再扩充些功能...你可以使用任意多的字段——由于后台使用 LIKE 来查询数据,将待搜索的字段数限制为一个不会出问题大小,会便于数据库进行查询操作。 END ----

98320
领券