您好,登錄后才能下訂單哦!
如何使用python django框架中的admin actions?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!
關于django 框架
django 框架配有一個功能強大的管理站點,里面已經預定義了許多管理站點需要進行的操作,但是有時可能默認的操作不能滿足需求,如需要批量更新選中的對象,這需要編寫自定義 action 實現。
Admin actions 簡介
admin actions 是一些在 admin 站點下拉列表中可以選擇執行的簡單函數,比如刪除一個對象操作。
編寫 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 函數,這個函數接受三個函數:
l 當前的 ModelAdmin
l 一個代表當前 HTTP 請求的 HttpRequest 對象
l 一個包含用戶選定的對象的 QuerySet (數據庫檢索對象)。
def make_published(modeladmin, request,queryset): queryset.update(status='p')
為了達到最佳性能,推薦使用 QuerySet 的 update 方法。
for obj in queryset: do_something_with(obj)
默認情況下,該操作將以“ Make published ”的形式出現在操作列表中,就是函數名,下劃線將由空格替換。為了讓這個方法更容易被人了解,我們可以給它添加一個 short_description 屬性。
def make_published(modeladmin, request,queryset): queryset.update(status='p') make_published.short_description ="Markselected stories as published"
感謝各位的閱讀!看完上述內容,你們對如何使用python django框架中的admin actions大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。