東莞哪家網(wǎng)站建設專業(yè)網(wǎng)絡營銷推廣計劃書
開篇就是道歉,哈哈哈哈,托更了好久好久,最近太忙了沒啥時間更新,各位看官有催更的闊以給我私信哇,希望各位看官給個三連!!!😍😍😍😍
一)簡介
"actions"按鈕是Django框架中的一個特殊按鈕,用于批量處理或操作多個數(shù)據(jù)記錄。該按鈕通常用于Django的管理界面中,允許用戶選擇多個記錄,并對它們執(zhí)行相同的操作。
通過使用"actions"按鈕,您可以在管理界面中輕松執(zhí)行批量操作,如刪除、導出、標記等。它提供了一個簡便的方式來處理大量數(shù)據(jù)記錄,而無需逐個處理每個記錄。"actions"按鈕的使用非常簡單,您只需在Django模型的管理類中定義一個方法,該方法將執(zhí)行您想要的批量操作。然后,將該方法添加到管理類的actions屬性中,以便在管理界面中顯示"actions"按鈕。用戶可以通過選擇相應的記錄并點擊"actions"按鈕來執(zhí)行批量操作。當用戶觸發(fā)"actions"按鈕時,Django將調(diào)用你定義的方法來處理所有選中的記錄。
總之,"actions"按鈕是Django框架中用于批量處理或操作多個數(shù)據(jù)記錄的特殊按鈕。它使得在管理界面中進行批量操作變得更加方便和高效。
二)使用
1)自定義按鈕的功能
關于按鈕的功能其實沒有那么多的講究,我們使用自定義按鈕只是去實現(xiàn)自己想要的業(yè)務邏輯,只需要用函數(shù)去實現(xiàn)效果就好,所以按鈕一般放在我們的項目中具體的app的admin.py文件中。具體的按鈕格式如下:
def custom_button(self, request, queryset):pass
例如,我們需要定義一個名為“l(fā)end”的按鈕,那么它會實現(xiàn)一個最簡單的功能去打印“hello,world!”在控制臺:
#按鈕
actions = ['lend']
#自定義的按鈕功能
def lend(self,request,queryset):print "hello,world!"
如上,我們使用def函數(shù)去定義了按鈕的功能后,我們還需要使用如下格式去注冊按鈕在admin.py中,只有這樣才可以在admin的后臺頁面中顯示出來:
actions = ['']
當然,自定義按鈕的功能有很多,根據(jù)你自己的業(yè)務邏輯去編輯自己的自定義按鈕吧!
2)按鈕樣式
django admin 默認提供了自定義按鈕的支持,但是樣式、圖標均不可自定義,simplepro在django admin 自定義action的基礎上增加了樣式、圖標、按鈕類型自定義。
在這里我將使用具體的例子給大家一個比較直觀的觀看感受:
- short_description,string類型,按鈕在admin界面上展示的名字
lend.short_description = '上架'
- style,string類型,按鈕文本的顏色
lend.style = 'color:black;'
- icon,string類型,按鈕的圖標,有想深入了解的讀者可以自行查閱:https://element.eleme.cn/#/zh-CN/component/icon
lend.icon = 'fas fa-audio-description'
- type,string類型,按鈕的具體類型,有想深入了解的讀者可以自行查閱:https://element.eleme.cn/#/zh-CN/component/button
lend.type = 'warning'
#warning這個類型的底色是黃色,所以大家可以看見展示出來的底色是黃色
當然,還有著很多的方法,各位看官可以自行查閱一下呢。
3)按鈕方法解釋
上文我們說過,按鈕的默認格式:
def custom_button(self, request, queryset):pass
那么具體的三個參數(shù)是什么意思?
字段 | 類型 | 說明 |
---|---|---|
self | 當前類 | 對象本身 |
request | HttpRequest | 請求 |
queryset | Queryset | 查詢對象,會自動增加過濾參數(shù) |
那么在這里,相信大家看到了這個熟悉又陌生的request,在這里我想詳細介紹一下關于request.POST中的參數(shù)獲取:
字段 | 類型 | 說明 |
---|---|---|
action | string | 該值是用于simplepro路由使用,可以不予理會 |
all | string | 取值0和1,0未全部選擇,1全部選中 |
key | string | 自定義按鈕的方法名 |
ids | string | 逗號分隔的選中的id,如果all=1,該值沒有 |
這里說一個例子:
def test(self, request, queryset):post=request.POSTaction=post.get('action')print(f"獲取的action:{action}")pass
那既然有獲取參數(shù),當然也有出參,當然,一般都指的是自定義按鈕方法返回的數(shù)據(jù),例如:
def test(self, request, queryset):return {'state': False,'msg': '用戶關聯(lián)的數(shù)據(jù)還沒有刪除!'}
同時,Django內(nèi)置的message也提供了支持:
def test(self, request, queryset):messages.add_message(request, messages.SUCCESS, '操作成功123123123123')