Django的model模型

Posted 冰滴的眼泪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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() 返回的实例用作查询内部对模型字段的引用。这些引用可以用于查询的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模型的主要内容,如果未能解决你的问题,请参考以下文章

django中对model模型添加方法

Django模型(数据库)008

django中的Model模型一:

Django中模型

09 Django 模型(数据库)

中文代码之Django官方入门:建立模型