Django對(duì)models里的objects的使用詳解
首先我們先熟悉下objects的大致概念.
object是模型屬性---用于模型對(duì)象和數(shù)據(jù)庫(kù)交互 .
objects = Manager() 是管理器類(lèi)型的對(duì)象 ,是Model和數(shù)據(jù)庫(kù)進(jìn)行查詢(xún)的接口.
objects : 管理器對(duì)象
是Manager類(lèi)型的對(duì)象,定義在from django.db import models中
用于模型對(duì)象和數(shù)據(jù)庫(kù)交互
是默認(rèn)自動(dòng)生成的屬性,但是可以自定義管理器對(duì)象
實(shí)例:
class Students(models.Model): # stuobj = models.Manager() #第一種重新定義objects,objects是Manager()的對(duì)象 # students.objects.all() 變成了 Students.stuObj.all() # stuobj2 = studentManager() 重新定義objects,查詢(xún)變成Students.stuObj2.all() sname = models.CharField(max_length=20) sgender = models.CharField(max_length=20) sage = models.IntegerField() scontend = models.CharField(max_length=100,null=True,blank=True)
自原本的我們的objects=models.Manager(),查詢(xún)類(lèi)的屬性時(shí)都是. 類(lèi)名.objects.方法
Students.objects.all() 查詢(xún)完之后返回一個(gè)queryset()
定義管理器對(duì)象:例如stuobj = models.Manager()
一旦自定義管理器對(duì)象,默認(rèn)的objects 就不再自動(dòng)生成,查詢(xún)時(shí)就變成了
Students.stuobj.all()
查詢(xún)時(shí)某些字段我們并不想要.這時(shí)候我們就可以自定義objects.
class studentManager(models.Manager): def get_queryset(self): return super(studentManager,self).get_queryset().filter(isDelete=False)
我們定義一個(gè)自定義的manager(),繼承models.manager.
后面的我們把isDelete是錯(cuò)誤的,就如上面自己定義的,下面
stuobj2 = studentManager()
Students.stuobj2.all()就把isDelete是錯(cuò)誤的刪除了.
以上這篇Django對(duì)models里的objects的使用詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python讀取mat文件生成h5文件的實(shí)現(xiàn)
這篇文章主要介紹了python讀取mat文件生成h5文件的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07Python中常見(jiàn)的KeyError報(bào)錯(cuò)分析
在Python編程中,KeyError是一種非常常見(jiàn)的異常,它通常發(fā)生在嘗試訪問(wèn)字典中不存在的鍵時(shí),本文將深入探討KeyError的報(bào)錯(cuò)原因、解決辦法,并通過(guò)代碼示例來(lái)演示如何避免這一錯(cuò)誤,需要的朋友可以參考下2024-07-07django中類(lèi)屬性和類(lèi)方法的實(shí)現(xiàn)
在django中,類(lèi)的屬性可以直接在實(shí)例化對(duì)象或類(lèi)中調(diào)用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-10-10Python 40行代碼實(shí)現(xiàn)人臉識(shí)別功能
很多人都認(rèn)為人臉識(shí)別是一項(xiàng)非常難以實(shí)現(xiàn)的工作,看到名字就害怕,然后心懷忐忑到網(wǎng)上一搜,看到網(wǎng)上N頁(yè)的教程立馬就放棄了。其實(shí)如果你不是非要深究其中的原理,只是要實(shí)現(xiàn)這一工作的話,人臉識(shí)別也沒(méi)那么難。今天我們就來(lái)看看如何在40行代碼以?xún)?nèi)簡(jiǎn)單地實(shí)現(xiàn)人臉識(shí)別。2017-04-04Windows下Python2與Python3兩個(gè)版本共存的方法詳解
這篇文章主要介紹了Windows下Python2與Python3兩個(gè)版本共存的方法,文中介紹的很詳細(xì),對(duì)大家具有一定的參考價(jià)值,有需要的朋友們下面來(lái)一起看看吧。2017-02-02【python】matplotlib動(dòng)態(tài)顯示詳解
這篇文章主要介紹了matplotlib動(dòng)態(tài)顯示,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04