Django的model模型
一:字段選項
1,null =True 表示數據庫的中可以存為null 默認值是False
2,blank=True 表示字段可以為空 默認值是False
3,chioces 由二項元組構成的一個可叠代對象,用給字典提供選擇的,取值需要:類對象.get_字段名_display
4,default 設置默認值
5,primary_key 設置這個字段為主鍵
6,unique 如果設置為True 這個數據字段的整張表必須是唯一的
二:自增主鍵字段
primary_key =true 也就是主鍵自增
三:字段自述名
foreignkey manytomany onetoonefield
2,verbose_name 可以命名參數
四:自定義字段類型 Meta的選擇
1,使用內部的class meta 定義模型的元數據,模型源數據是“任何不適字段的數據”
from django.db import models class Ox(models.Model): horn_length = models.IntegerField() class Meta: ordering = ["horn_length"] verbose_name_plural = "oxen"
五:Django查詢的方法
1,get
2,filter
3,all
4,exclade
5,限制查詢集 需要用切片來表示,但是不能負切片
Entry.objects.all()[5:10]
6,字段查詢
exact 精確匹配
Entry.objects.get(headline__exact="Man bites dog")
iexact 大小寫不敏感匹配
contains 包含匹配
startswith
endswith
in 在裏面
lt 小於
gt大於
7,跨關聯關系查詢
若要跨越關聯關系,只需使用關聯的模型字段的名稱,並使用雙下劃線分隔,直至你想要的字段:也就是__跨表查詢
8,filter中的F查詢,Q查詢
Django 提供F 表達式 來允許這樣的比較。F() 返回的實例用作查詢內部對模型字段的引用。這些引用可以用於查詢的filter 中來比較相同模型實例上不同字段之間值的比較。
Django 支持對F() 對象使用加法、減法、乘法、除法、取模以及冪計算等算術操作,兩個操作數可以都是常數和其它F() 對象
Entry.objects.filter(n_comments__gt=F(‘n_pingbacks‘) * 2)
Q 對象可以使用& 和| 操作符組合起來。當一個操作符在兩個Q 對象上使用時,它產生一個新的Q 對象。
def get_search_condition(self): con = Q() con.connector = "OR" # asdfasdf val = self.request.GET.get(self.q) if not val: return con # [‘qq__contains‘,‘name] field_list = self.get_search_list() for field in field_list: field = "{0}__contains".format(field) con.children.append((field,val)) return con
Django的model模型