首先我們先熟悉下objects的大致概念.
object是模型屬性---用於模型物件和資料庫互動 .
objects = manager() 是管理器型別的物件 ,
是model和資料庫進行查詢的介面.
objects : 管理器物件
是manager型別的物件,定義在from django.db import models中
用於模型物件和資料庫互動
是預設自動生成的屬性,但是可以自定義管理器物件
例項:
class students(models.model):自原本的我們的objects=models.manager(),查詢類的屬性時都是. 類名.objects.方法# 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)
students.objects.all() 查詢完之後返回乙個queryset()
定義管理器物件:例如stuobj = models.manager()
一旦自定義管理器物件,預設的objects 就不再自動生成,查詢時就變成了
students.stuobj.all()
查詢時某些字段我們並不想要.這時候我們就可以自定義objects.
class studentmanager(models.manager):我們定義乙個自定義的manager(),繼承models.manager.def
get_queryset(self):
return
super(studentmanager,
self).get_queryset().filter(isdelete=false)
後面的我們把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 日期欄位的月...