1.自定義管理器(Manager)

在語句Book.objects.all()中, objects 是一個特殊的屬性,通過它來查詢數據庫,它就是模型的一個Manager.
每個Django模型至少有一個manager,你可以創建自定義manager以定制數據庫的訪問.
這里有兩個方法創建自定義manager:添加額外的manager;修改manager返回的初始Queryset.
添加額外的manager
增加額外的manager是為模塊添加 表級功能 的選辦法.(至于 行級功能 ,也就是只作用于模型實例對象的函數,則通過自定義模型方法實現).
例如,為Book模型添加一個 title_count() 的manger方法,它接收一個 keyword ,并返回標題中包含 keyword 的書的數量.
from django.db import models
# 自定義模型管理器類
class BookManager(models.Manager):
#自定義模型管理器中的方法
def title_count(self, keyword):
return self.filter(title_icountains=keyword).count()
class Book(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField(Author)
...
objects = BookManager()
def __str__(self):
return self.title另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
標題名稱:Django中自定義模型管理器(Manager)及方法-創新互聯
URL分享:http://www.yijiale78.com/article48/ceecep.html
成都網站建設公司_創新互聯,為您提供手機網站建設、移動網站建設、網站導航、用戶體驗、面包屑導航、網站收錄
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯