码迷,mamicode.com
首页 > 其他好文 > 详细

Django的model模型

时间:2018-01-20 19:46:54      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:utils   数据库   sea   adl   必须   表达   表示   模型   res   

一:字段选项

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() 返回的实例用作查询内部对模型字段的引用。这些引用可以用于查询的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模型

标签:utils   数据库   sea   adl   必须   表达   表示   模型   res   

原文地址:https://www.cnblogs.com/1204guo/p/7867684.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!