一:字段选项
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