1.進入django shell
2.導入類,查詢objects類型
3.在BookInfo裏面加入管理器類對象,重新進入shell
book=models.manager.Manager()
4.用BookInfo.objects.all()會報錯,用BookInfo.book.all()則正常,定義了管理器類以後,django就不產生默認的objects
5.添加自定義管理器類
class BookInfoManager(models.manager.Manager):
def all(self):
books = super().all()
#對數據進行過濾
books= books.filter(isDelete=False)
return books;
6.在BookInfo類中增加管理器類對象
#自定義管理器類
objects= BookInfoManager()
7.通過PowerCell將最後一條數據的isDelete改爲1
8.在終端中重新進入shell,並查詢所有數據,就會過濾掉isDelete=1的數據
9.在BookInfo類中增加類方法
@classmethod
def create_book(cls, btitle, bpub_date):
obj = cls()
obj.btitle = btitle
obj.bpub_date = bpub_date
obj.save()
return obj
10.重新進入shell,通過下面的命令就可以添加數據
11.模型類只是對應表中的數據,一般把CRUD放在管理器類中,刪除上面的類方法,將其添加到管理器類中
#封裝函數:操作模型類對應的數據表
def create_book(self, btitle, bpub_date):
obj = BookInfo()
obj.btitle = btitle
obj.bpub_date = bpub_date
obj.save()
return obj
12.重新進入shell,通過管理器類來增加數據
13.其實管理器類已經封裝了CRUD方法,但必須按定位參數來傳輸
14.管理器類裏面有個model屬性,它返回的就是模型類
15.修改CRUD方法,這樣如果模型名變了,CRUD方法不用改變
def create_book(self, btitle, bpub_date):
#獲取self對應的模型類
#model_class =self.model
obj = self.model()
obj.btitle = btitle
obj.bpub_date = bpub_date
obj.save()
return obj