在django admin中添加自定義視圖的例子
django admin提供了完善的用戶(hù)管理和數(shù)據(jù)模型管理,方便實(shí)用。研究了一下在admin里面添加自己的頁(yè)面。
在admin.py里繼承django.contrib.admin.ModelAdmin基類(lèi)
class FaceAdmin(admin.ModelAdmin):
然后在里面寫(xiě)自己的視圖處理函數(shù)。基類(lèi)里面的save_model和delete_model函數(shù)可以做數(shù)據(jù)對(duì)象的新建和刪除的預(yù)處理和后處理。自建的函數(shù)如果要redirect到自己建的view,反向映射要包含admin:,寫(xiě)成
return HttpResponseRedirect(reverse('admin:manage_face_image', args=(face_id,)))
然后添加一個(gè)獲取路由的函數(shù),把自己的路由添加上
def get_urls(self): urls = super().get_urls() my_urls = [ path('<int:face_id>/manage_face_image/', self.admin_site.admin_view(self.manage_face_image), name='manage_face_image'), path('<int:face_id>/<str:face_file>/delete_face_image/', self.admin_site.admin_view(self.delete_face_image), name='delete_face_image') ] return my_urls + urls
最后把子類(lèi)和數(shù)據(jù)模型一起注冊(cè)成admin的站點(diǎn):
admin.site.register(Face, FaceAdmin)
這樣就可以通過(guò)/admin/app/face/5/manage_face_image/這個(gè)url來(lái)訪(fǎng)問(wèn)自己的視圖了。詳細(xì)說(shuō)一下,admin是指admin站點(diǎn),app是指自己的djangoapp,face是數(shù)據(jù)模型。
自定義視圖的模板在最頂上繼承admin_site的基模板
{% extends "admin/base_site.html" %}
但是會(huì)發(fā)現(xiàn)右上角沒(méi)有正常的admin網(wǎng)站包含的歡迎信息和站點(diǎn)視圖以及修改密碼和注銷(xiāo)的鏈接。因?yàn)樵赽ase_site.html的基模板base.html中有一個(gè)判斷{% if has_permission %},這是django.contrib.admin.AdminSite類(lèi)的一個(gè)屬性,返回的是user.is_active and user.is_staff,我們沒(méi)有繼承這個(gè)基類(lèi)所以沒(méi)有這個(gè)屬性,其實(shí)base.html就在下面幾行也有這個(gè)判斷,方便起見(jiàn)直接把if has_permission這個(gè)判斷刪了就行了,雖然仍然沒(méi)有站點(diǎn)視圖,但是已經(jīng)好看多了。還有一點(diǎn)要注意的是模板在用url時(shí)要加上admin:,寫(xiě)成
{% url 'admin:manage_face_image' face_id %}
以上這篇在django admin中添加自定義視圖的例子就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Matplotlib實(shí)現(xiàn)各種條形圖繪制
這篇文章主要介紹了Matplotlib實(shí)現(xiàn)各種條形圖繪制,文章通過(guò)利用 plt.bar 方法實(shí)現(xiàn)各種條形圖繪制,內(nèi)容詳細(xì)具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-03-03Python海象運(yùn)算符代碼分析及知識(shí)點(diǎn)總結(jié)
在本篇內(nèi)容里小編給大家總結(jié)了關(guān)于Python海象運(yùn)算符的使用的相關(guān)內(nèi)容及代碼,有興趣的朋友們跟著學(xué)習(xí)下。2022-11-11python統(tǒng)計(jì)一個(gè)文本中重復(fù)行數(shù)的方法
這篇文章主要介紹了python統(tǒng)計(jì)一個(gè)文本中重復(fù)行數(shù)的方法,涉及針對(duì)Python中dict對(duì)象的使用及相關(guān)本文的操作,具有一定的借鑒價(jià)值,需要的朋友可以參考下2014-11-11Mysql分組查詢(xún)group by與with rollup方式
這篇文章主要介紹了Mysql分組查詢(xún)group by與with rollup方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08通過(guò)python模糊匹配算法對(duì)兩個(gè)excel表格內(nèi)容歸類(lèi)
這篇文章主要介紹了通過(guò)python模糊匹配算法對(duì)兩個(gè)excel表格內(nèi)容歸類(lèi),比如兩個(gè)不同的工程項(xiàng)目針對(duì)的對(duì)象都是A,那么就需要將這兩個(gè)工程項(xiàng)目歸類(lèi)到A當(dāng)中,可以減少很大一部分工作量,,需要的朋友可以參考下2023-03-03書(shū)寫(xiě)Python代碼的一種更優(yōu)雅方式(推薦!)
Python是一個(gè)高層次的結(jié)合了解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語(yǔ)言,下面這篇文章主要給大家介紹了關(guān)于書(shū)寫(xiě)Python代碼的一種更優(yōu)雅方式,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10pycharm運(yùn)行程序時(shí)出現(xiàn)Run‘python tests for XXX.py‘問(wèn)題及
這篇文章主要介紹了pycharm運(yùn)行程序時(shí)出現(xiàn)Run ‘python tests for XXX.py‘問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08