在 Admin 中自定義 list_filter
list_filter
可以對資料進行篩選,支援 BooleanField、CharField、DateField、DateTimeField、IntegerField、ForeignKey或ManyToManyField。另外,還可以自定義!
假設這裡有一個Task
模型併為其增加一個自定義過濾器使其能夠方便的篩選出“未完成的任務”、“完成的任務”,我們可以這樣做:
# -*- coding:utf-8 -*-
from django.contrib import admin
from django.contrib.admin import SimpleListFilter
from .models import Task
class TaskCompletedFilter(SimpleListFilter):
title = '是否完成'
parameter_name = 'completed'
def lookups(self, request, model_admin):
# 第一個對應查詢引數的值,第二個對應下拉選單選項
return (
('0', '未完成'),
('1', '完成'),
)
def queryset(self, request, queryset):
if self.value() == '0':
return Task.objects.filter(completed='0').all()
elif self.value() == '1':
return Task.objects.filter(completed='1').all()
class TaskAdmin(admin.ModelAdmin):
list_display = ('title', 'description', 'completed', 'create_date')
search_fields = ('title',)
list_filter = (TaskCompletedFilter,)
ordering = ('-create_date',)
admin.site.register(Task, TaskAdmin)
TaskCompletedFilter
繼承自 django.contrib.admin.SimpleListFilter
,並提供title
和 parameter_name
屬性分別對應過濾器的名稱和查詢關鍵字名。另外,還需重寫lookups
和queryset
兩個方法,分別對應查詢選項和資料篩選。
最後,將其新增到TaskAdmin
的list_filter
裡即可使用了。
相關文章
- Django Admin自定義app中模型顯示順序DjangoAPP模型
- django admin中增加自定義超連結欄位Django
- 在Laravel 中如何自定義servicesLaravel
- Laravel-Admin Form 元件 自定義提交路由LaravelORM元件路由
- Laravel Admin 自定義 JavaScript 的正確方式?LaravelJavaScript
- Dcat-admin 自定義登入頁面
- Laravel-admin 自定義匯出表單Laravel
- 在.NET 6.0中自定義介面路由路由
- 在Jetbrain IDE中自定義TODO功能AIIDE
- Dcat-admin自定義站點配置頁面
- flutter系列之:在flutter中自定義themesFlutter
- Dcat admin 使用maatwebsite/excel3.1自定義匯出WebExcel
- 在 React 中建立自定義 Hook 的最佳技巧ReactHook
- 在Vue3中實現自定義指令Vue
- 自定義物件池在 Caffeine 框架中實踐物件框架
- 在Luminar 4中向天空新增自定義物件物件
- 在echarts中自定義提示框內容Echarts
- 什麼是AOP,以及在Springboot中自定義AOPSpring Boot
- 在SSIS中自定義VB.Net指令碼(下)OF指令碼
- 在vue中展示自定義列名的甘特圖Vue
- Laravel-admin 自定義擴充套件,jQuery 語法錯誤?Laravel套件jQuery
- Laravel-admin 自定義頁面(ps:想跟大佬們聊聊)Laravel
- dcat-admin如何自定義donut圖表的formatter閉包ORM
- apisix~14在自定義外掛中呼叫proxy_rewriteAPI
- 在vue專案中自定義事件匯流排eventHubVue事件
- Vue中自定義指令Vue
- Javascript中自定義事件JavaScript事件
- 在Flutter中使用自定義IconFlutter
- keycloak~在認證的action中自定義重定向地址
- 影片直播系統原始碼,在Laravel中自定義模板函式 並在模板中呼叫原始碼Laravel函式
- Hive中自定義函式Hive函式
- Swift中自定義運算子Swift
- 自定義RadiusBackgroundSpan在textview設定tagTextView
- laravel admin 列展開 自定義行操作 增加編輯修改按鈕Laravel
- Dcat Admin 自定義 Form 表單實現後臺系統配置內容的自定義,並可擴充套件配置項。ORM套件
- 聊聊自定義SPI如何使用自定義標籤注入到spring容器中Spring
- 給Django的Admin新增自定義Action 並移除需要選擇物件的限制Django物件
- 自定義模型怎麼在首頁呼叫?模型
- Springboot中自定義監聽器Spring Boot