當前位置:
首頁 > 知識 > django之管理器

django之管理器

管理器Manager

管理器是Django的模型進行資料庫操作的介面,Django應用的每個模型類都擁有至少一個管理器。

我們在通過模型類的objects屬性提供的方法操作資料庫時,即是在使用一個管理器對象objects。當沒有為模型類定義管理器時,Django會為每一個模型類生成一個名為objects的管理器,它是models.Manager類的對象。

自定義管理器

我們可以自定義管理器,並應用到我們的模型類上。

注意:一旦為模型類指明自定義的過濾器後,Django不再生成默認管理對象objects。

自定義管理器類主要用於兩種情況:

1. 修改原始查詢集,重寫all()方法。

a)打開booktest/models.py文件,定義類BookInfoManager

  1. #圖書管理器
  2. class BookInfoManager(models.Manager):
  3. def all(self):
  4. #默認查詢未刪除的圖書信息
  5. #調用父類的成員語法為:super().方法名
  6. return super().filter(is_delete=False)

b)在模型類BookInfo中定義管理器

  1. class BookInfo(models.Model):
  2. ...
  3. books = BookInfoManager()

c)使用方法

BookInfo.books.all()

2. 在管理器類中補充定義新的方法

a)打開booktest/models.py文件,定義方法create。

  1. class BookInfoManager(models.Manager):
  2. #創建模型類,接收參數為屬性賦值
  3. def create_book(self, title, pub_date):
  4. #創建模型類對象self.model可以獲得模型類
  5. book = self.model()
  6. book.btitle = title
  7. book.bpub_date = pub_date
  8. book.bread=0
  9. book.bcommet=0
  10. book.is_delete = False
  11. # 將數據插入進數據表
  12. book.save()
  13. return book

b)為模型類BookInfo定義管理器books語法如下

  1. class BookInfo(models.Model):
  2. ...
  3. books = BookInfoManager()

c)調用語法如下:

book=BookInfo.books.create_book("abc",date(1980,1,1))

django之管理器

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

SpringMVC工程的web.xml以及其他配置文件
初始化git的初始化用戶信息

TAG:程序員小新人學習 |