在 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中增加自定義超連結欄位Django
- Django Admin自定義app中模型顯示順序DjangoAPP模型
- 在Laravel 中如何自定義servicesLaravel
- 在.NET 6.0中自定義介面路由路由
- 使用jQuery在javascript中自定義事件jQueryJavaScript事件
- Laravel Admin 自定義 JavaScript 的正確方式?LaravelJavaScript
- Laravel-Admin Form 元件 自定義提交路由LaravelORM元件路由
- Dcat-admin 自定義登入頁面
- Laravel-admin 自定義匯出表單Laravel
- 在vue中展示自定義列名的甘特圖Vue
- flutter系列之:在flutter中自定義themesFlutter
- 在Jetbrain IDE中自定義TODO功能AIIDE
- 在echarts中自定義提示框內容Echarts
- 在vue中,使用echarts的自定義主題VueEcharts
- 在資料庫中自定義外部函式資料庫函式
- 自定義物件池在 Caffeine 框架中實踐物件框架
- 在Vue3中實現自定義指令Vue
- 在 React 中建立自定義 Hook 的最佳技巧ReactHook
- Dcat-admin自定義站點配置頁面
- Dcat admin 使用maatwebsite/excel3.1自定義匯出WebExcel
- 在Luminar 4中向天空新增自定義物件物件
- 在SSIS中自定義VB.Net指令碼(下)OF指令碼
- Vue中自定義指令Vue
- Javascript中自定義事件JavaScript事件
- 在vue專案中自定義事件匯流排eventHubVue事件
- 在VC++中建立自定義資料庫類 (轉)C++資料庫
- apisix~14在自定義外掛中呼叫proxy_rewriteAPI
- Laravel-admin 自定義頁面(ps:想跟大佬們聊聊)Laravel
- Laravel-admin 自定義擴充套件,jQuery 語法錯誤?Laravel套件jQuery
- dcat-admin如何自定義donut圖表的formatter閉包ORM
- 在WF4.0中修改自定義Activity的Icon
- 什麼是AOP,以及在Springboot中自定義AOPSpring Boot
- Swift中自定義運算子Swift
- Hive中自定義函式Hive函式
- Oracle中自定義函式Oracle函式
- 影片直播系統原始碼,在Laravel中自定義模板函式 並在模板中呼叫原始碼Laravel函式
- keycloak~在認證的action中自定義重定向地址
- 在Flutter中使用自定義IconFlutter