如何使用python django框架中的admin actions?這個問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!
創(chuàng)新互聯(lián)服務(wù)項目包括臨武網(wǎng)站建設(shè)、臨武網(wǎng)站制作、臨武網(wǎng)頁制作以及臨武網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,臨武網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到臨武省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
關(guān)于django 框架
django 框架配有一個功能強大的管理站點,里面已經(jīng)預(yù)定義了許多管理站點需要進(jìn)行的操作,但是有時可能默認(rèn)的操作不能滿足需求,如需要批量更新選中的對象,這需要編寫自定義 action 實現(xiàn)。
Admin actions 簡介
admin actions 是一些在 admin 站點下拉列表中可以選擇執(zhí)行的簡單函數(shù),比如刪除一個對象操作。
編寫 Admin actions
下面舉例說明如何編寫Admin action。例如批量更新一個名為 Article 的模型:
from django.db import models STATUS_CHOICES = [ ('d', 'Draft'), ('p', 'Published'), ('w', 'Withdrawn'), ] classArticle(models.Model): title = models.CharField(max_length=100) body = models.TextField status = models.CharField(max_length=1,choices=STATUS_CHOICES) def__str__(self): returnself.title
下面來編寫 action 函數(shù),這個函數(shù)接受三個函數(shù):
l 當(dāng)前的 ModelAdmin
l 一個代表當(dāng)前 HTTP 請求的 HttpRequest 對象
l 一個包含用戶選定的對象的 QuerySet (數(shù)據(jù)庫檢索對象)。
def make_published(modeladmin, request,queryset): queryset.update(status='p')
為了達(dá)到最佳性能,推薦使用 QuerySet 的 update 方法。
for obj in queryset: do_something_with(obj)
默認(rèn)情況下,該操作將以“ Make published ”的形式出現(xiàn)在操作列表中,就是函數(shù)名,下劃線將由空格替換。為了讓這個方法更容易被人了解,我們可以給它添加一個 short_description 屬性。
def make_published(modeladmin, request,queryset): queryset.update(status='p') make_published.short_description ="Markselected stories as published"
感謝各位的閱讀!看完上述內(nèi)容,你們對如何使用python django框架中的admin actions大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。