Django的model模型
一:字段選項
1,null =True 表示數(shù)據(jù)庫的中可以存為null ?默認值是False
2,blank=True ?表示字段可以為空 ?默認值是False
3,chioces 由二項元組構(gòu)成的一個可迭代對象,用給字典提供選擇的,取值需要:類對象.get_字段名_display
4,default ?設(shè)置默認值
5,primary_key ?設(shè)置這個字段為主鍵
6,unique 如果設(shè)置為True ?這個數(shù)據(jù)字段的整張表必須是唯一的
二:自增主鍵字段
primary_key =true ?也就是主鍵自增
三:字段自述名
foreignkey ?manytomany onetoonefield
2,verbose_name ?可以命名參數(shù)
四:自定義字段類型 Meta的選擇
1,使用內(nèi)部的class meta 定義模型的元數(shù)據(jù),模型源數(shù)據(jù)是“任何不適字段的數(shù)據(jù)”
from django.db import modelsclass 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,跨關(guān)聯(lián)關(guān)系查詢
?若要跨越關(guān)聯(lián)關(guān)系,只需使用關(guān)聯(lián)的模型字段的名稱,并使用雙下劃線分隔,直至你想要的字段:也就是__跨表查詢
8,filter中的F查詢,Q查詢
Django 提供F?表達式?來允許這樣的比較。F()?返回的實例用作查詢內(nèi)部對模型字段的引用。這些引用可以用于查詢的filter 中來比較相同模型實例上不同字段之間值的比較。
Django 支持對F()?對象使用加法、減法、乘法、除法、取模以及冪計算等算術(shù)操作,兩個操作數(shù)可以都是常數(shù)和其它F()?對象
Entry.objects.filter(n_comments__gt=F('n_pingbacks') * 2)Q?對象可以使用&?和|?操作符組合起來。當一個操作符在兩個Q?對象上使用時,它產(chǎn)生一個新的Q?對象。
def get_search_condition(self):con = Q()con.connector = "OR"# asdfasdfval = 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?
轉(zhuǎn)載于:https://www.cnblogs.com/1204guo/p/7867684.html
總結(jié)
以上是生活随笔為你收集整理的Django的model模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 年轻人回乡创业的项目 广阔农村遍地是机会
- 下一篇: DevExpress v17.2新版亮点