在django admin中添加自定義視圖的例子
django admin提供了完善的用戶管理和數(shù)據(jù)模型管理,方便實(shí)用。研究了一下在admin里面添加自己的頁面。
在admin.py里繼承django.contrib.admin.ModelAdmin基類
class FaceAdmin(admin.ModelAdmin):
然后在里面寫自己的視圖處理函數(shù)?;惱锩娴膕ave_model和delete_model函數(shù)可以做數(shù)據(jù)對象的新建和刪除的預(yù)處理和后處理。自建的函數(shù)如果要redirect到自己建的view,反向映射要包含admin:,寫成
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
最后把子類和數(shù)據(jù)模型一起注冊成admin的站點(diǎn):
admin.site.register(Face, FaceAdmin)
這樣就可以通過/admin/app/face/5/manage_face_image/這個(gè)url來訪問自己的視圖了。詳細(xì)說一下,admin是指admin站點(diǎn),app是指自己的djangoapp,face是數(shù)據(jù)模型。
自定義視圖的模板在最頂上繼承admin_site的基模板
{% extends "admin/base_site.html" %}
但是會(huì)發(fā)現(xiàn)右上角沒有正常的admin網(wǎng)站包含的歡迎信息和站點(diǎn)視圖以及修改密碼和注銷的鏈接。因?yàn)樵赽ase_site.html的基模板base.html中有一個(gè)判斷{% if has_permission %},這是django.contrib.admin.AdminSite類的一個(gè)屬性,返回的是user.is_active and user.is_staff,我們沒有繼承這個(gè)基類所以沒有這個(gè)屬性,其實(shí)base.html就在下面幾行也有這個(gè)判斷,方便起見直接把if has_permission這個(gè)判斷刪了就行了,雖然仍然沒有站點(diǎn)視圖,但是已經(jīng)好看多了。還有一點(diǎn)要注意的是模板在用url時(shí)要加上admin:,寫成
{% url 'admin:manage_face_image' face_id %}
以上這篇在django admin中添加自定義視圖的例子就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mac OS X10.9安裝的Python2.7升級Python3.3步驟詳解
Mac OS X10.9默認(rèn)帶了Python2.7,不過現(xiàn)在Python3.3.3出來了,如果想使用最新版本,趕緊升級下吧。基本步驟如下2013-12-12
mac系統(tǒng)配置python環(huán)境變量兩種方案
這篇文章主要介紹了配置最新Mac電腦上的Python環(huán)境變量的方法,提供了兩種方案,但目前第二種方案似乎無效,大家可以根據(jù)需求了解,需要的朋友可以參考下2025-03-03
Windows 8.1 64bit下搭建 Scrapy 0.22 環(huán)境
這篇文章主要介紹了Windows 8.1 64bit下搭建 Scrapy 0.22 環(huán)境,需要的朋友可以參考下2018-11-11
Python中生成一個(gè)指定長度的隨機(jī)字符串實(shí)現(xiàn)示例
這篇文章主要介紹了Python中生成一個(gè)指定長度的隨機(jī)字符串,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11

