在Django admin中,可以使用值列表进行过滤来筛选特定的数据。值列表过滤允许您根据字段的特定值来过滤查询结果。
要在Django admin中按值列表进行过滤,可以按照以下步骤操作:
from .models import Book
from django.contrib import admin
from django.contrib.admin import SimpleListFilter
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')
@admin.register(Book)
class BookAdmin(admin.ModelAdmin):
list_filter = (BookTypeFilter,)
现在,您可以在Django admin中看到一个名为"Book Type"的过滤器,它将显示为一个下拉列表。选择其中一个选项,Django admin将根据您的选择过滤查询结果。
推荐的腾讯云相关产品:腾讯云服务器(CVM)、腾讯云数据库MySQL版、腾讯云对象存储(COS)。
腾讯云产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云