Django對models裡的objects的闡述

2021-08-20 14:07:48 字數 1408 閱讀 9613

首先我們先熟悉下objects的大致概念.

object是模型屬性---用於模型物件和資料庫互動 .

objects = manager() 是管理器型別的物件 ,

是model和資料庫進行查詢的介面.

objects : 管理器物件

是manager型別的物件,定義在from django.db import models中

用於模型物件和資料庫互動

是預設自動生成的屬性,但是可以自定義管理器物件

例項:

class students(models.model):

# stuobj = models.manager() #第一種重新定義objects,objects是manager()的物件

# students.objects.all() 變成了 students.stuobj.all()

# stuobj2 = studentmanager() 重新定義objects,查詢變成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(),查詢類的屬性時都是.   類名.objects.方法

students.objects.all() 查詢完之後返回乙個queryset()

定義管理器物件:例如stuobj = models.manager()

一旦自定義管理器物件,預設的objects 就不再自動生成,查詢時就變成了

students.stuobj.all()

查詢時某些字段我們並不想要.這時候我們就可以自定義objects.

class studentmanager(models.manager):

def

get_queryset(self):

return

super(studentmanager,

self).get_queryset().filter(isdelete=false)

我們定義乙個自定義的manager(),繼承models.manager.

後面的我們把isdelete是錯誤的,就如上面自己定義的,下面

stuobj2 = studentmanager()

students.stuobj2.all()就把isdelete是錯誤的刪除了.

Django的models中filter的各種用法

exact 精確等於 like aaa iexact 精確等於 忽略大小寫 ilike aaa contains 包含 like aaa icontains 包含 忽略大小寫 ilike aaa 但是對於sqlite來說,contains的作用效果等同於icontains。gt 大於 gte 大於等...

Django中models的編寫

models的編寫 1 通過orm建立資料表from django.db import models create your models here.class publisher models.model name models.charfield max length 20 address mo...

django中models的filter過濾方法

gte 大於等於 lt 小於 lte 小於等於 in 存在於乙個list範圍內 startswith 以 開頭 istartswith 以 開頭忽略大小寫 endswith 以 結尾 iendswith 以 結尾,忽略大小寫 range 在 範圍內 year 日期欄位的年份 month 日期欄位的月...