關於在django框架中在admin頁面下添加自定義按鈕並實現功能


關於如何在django中admin頁面下添加自定義按鈕並實現功能
最近使用Django的admin頁面開發了一個產品信息管理系統,由於需求的不斷增加,需要在admin頁面自定義一些按鈕,並通過request請求,觸發后端的一下腳本程序,實現某些特定的功能。首先聲明一下:本程序是基於django 2.2.16版本進行開發的,過低的版本不知道是否能夠實現。

首先修改admin頁面
對於網上的教程,相信不少需要增加此功能的程序員已經看過相關的文章了,但是通過對比網上的一些教程來說,一般都會需要修改admin自帶的 HTML 文檔,但是我個人覺得,這種方法對於一些新手程序員,尤其像本人這種,沒有多少經驗,稍有不慎就會發生莫名奇妙的問題,而且很難排查,浪費時間。
下面正式開始介紹:
首先在 admin.py 中定義一個功能函數,我這里起名叫 operator ,此函數中使用 format_html 方法返回一個 a 標簽,在 href 中加入你需要的鏈接地址,具體代碼如下:

def operator(self, obj):
return format_html(
'<a href="/update_data/">更新<a/>'
)

operator.short_description = '數據更新'
1
2
3
4
5
6
寫完后,需要將 operator 放入,list_display 列表中,以此來達到顯示的目的;下面需要將 你在href中定義的鏈接,在 url.py 中進行定義:

urlpatterns = [
path('update_data/', update_pdaq),
]
1
2
3
后面需要根據你定義的 在views.py 中定義相關的功能函數:

def update_pdaq(request):
if request.META:
# print(request.META)
status = start_main()
context = {
'status': status
}
return render(request, 'update.html', context=context)
1
2
3
4
5
6
7
8
上圖中 start_main() 則是我自己定義的一個python腳本,在程序執行完成后,腳本會返回一個結果,

return '數據更新完畢,請登錄查看結果!'
1
后面需要自己新建一個update.html文件,將結果傳入到這個 HTML文檔中,

{{ status }}
1
這樣,在程序執行完成后,該結果就可以顯示在前端頁面中。
上述方法,新手程序員可能會感覺比較復雜,但當你真正的了解 Django原理之后,其實每一個請求都是沿着上述的思路進行的,所以一定要有足夠的耐心,將每一段代碼試着敲一下,總會得到自己想要的結果。
————————————————
版權聲明:本文為CSDN博主「奮斗的小飛俠」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_45543571/article/details/115705967


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM