Django_model:

eg:

class XXXX(models.Model):

nid = models.AutoField(primary_Key=True)

name = models.CharField(max_length=32)

age = models.IntegerField()

authorDetail = models.OneToOneFiled(to='AuthorDetail')

author = models.ManyToManyField(to='Author')

publish = models.ForeignKeyField(to='Publish',to_field='nid')

字段的选项:

1.null 是否允许为空

2.blank 在表单填写的时候,是否可以不填

3.default 字段的默认值

4.primary_Key 是否为主键

5.unique 是否联合唯一

6.choice 多选

添加表记录:

普通字段:

1.publish_obj = Publish(name='人民出版社',city='北京')

publish_obj.save()

2.publish_obj = Publish.create(name='人民出版社',city='北京')

外键字段:

1.publish_obj = Publish.objects.filter(nid=1)[0]

Book.objects.create(title='python',publish=publish_obj)

2.Book.objects.create(title='python',publish_id=1)

关键点:book_obj.publish得到的就是这本书所对应出版社的对象,可以直接调用publish的属性

多对多字段:

book_obj.authors.add(author_obj1,author_obj2)

book_obj.authors.create() #创建并保存一个新的

book_obj.authors.all() #查询所有

book_obj.authors.remove() #将某个特定的对象删除

book_obj.authors.clear() #清空所有关联

两个删除方式,必须是多对多字段可以为空时,即null=True

查询相关method:

1.all() 查询所有

2.filter() 获取所有过滤后的queryset

3.get() 获取一个queryset,多余1个或者为0时报错

4.exclude() 所给筛选条件不匹配的对象

5.values() 返回需要的字段,以字典的形式,返回多个queryset

6.values_list() 返回需要的字段,以元祖的形式,返回一个queryset

7.order_by() 对查询结果排序

8.distinct() 从返回结果中删除重复的对象

9.reverse() 对查询结果反向排序

10.count() 返回匹配中的个数

11.firsr() 返回第一个

12.last() 返回最后一个

13.exists() 如果存在就返回True

14.only() 查找时只取所对应的字段,而不是取所有

15.defer() 和only相反

查询:

一对多:

正向:book_obj.publish.city

反向:publish_obj.book_set.title

一对一:

正向:author_mihon.authorDetail.telephone

反向:authorDetail_obj.author.name

多对对:

同一对一

聚合查询:

from django.db.models import Avg,Max,Min

Book.objects.all().agregate(avg_price=Avg('price')) -->{'avg_price':24.26}

Book.objects.all().agregate(Avg('price'),Max('price'),Min('price'))

{'price__avg': 34.35, 'price__max': Decimal('81.20'), 'price__min': Decimal('12.99')}

分组查询:

book_list = Book.objects.annotate(authorNum=Count('authors')) 统计每一本书的作者数

author_list = Author.objects.annotate(bookNum=Count('book')).filter(bookNum__gt=1) 统计出书不少于一本的作者

book_list = Book.objects.annotate(authorNum=Count('authors')).filter(authorNum__gt=1) 统计不止一个作者的书

book_list = Book.objects.annotate(authorNum=Count('authors')).order_by('authorNum') 根据每本书的作者数进行排序

F查询:

Book.objects.all().update(price=F('price')+30)

Q查询:

bookList = Book.objects.filter(Q(author_name='yuan')|Q(author_name='mihon'))

动态Q查询:

con = Q()

q1 = Q()

q1.connector = 'AND'

q1.children.append(('email',value_dict['email']))

q1.children.append(('password',value_dict['password']))

q2 = Q()

q2.connector = 'AND'

q2.children.append(('email',value_dict['email']))

q2.children.append(('email',value_dict['password']))

con.add(q1,'OR')

con.add(q2,'OR')

Django Model two的更多相关文章

  1. 【转】Django Model field reference学习总结

    Django Model field reference学习总结(一) 本文档包含所有字段选项(field options)的内部细节和Django已经提供的field types. Field 选项 ...

  2. Django model字段类型清单

    转载:<Django model字段类型清单> Django 通过 models 实现数据库的创建.修改.删除等操作,本文为模型中一般常用的类型的清单,便于查询和使用: AutoField ...

  3. Django:Model的Filter

    转自:http://www.douban.com/note/301166150/   django model filter 条件过滤,及多表连接查询.反向查询,某字段的distinct   1.多表 ...

  4. Django model中 双向关联问题,求帮助

    Django model中 双向关联问题,求帮助 - 开源中国社区 Django model中 双向关联问题,求帮助

  5. django 自定用户系统 以及 Django Model 定义语法

    http://www.tuicool.com/articles/jMzIr2 django使用自己的用户系统 http://www.jianshu.com/p/c10be59aad7a Django ...

  6. tornado with MySQL, torndb, django model, SQLAlchemy ==> JSON dumped

    现在,我们用torndo做web开发框架,用他内部机制来处理HTTP请求.传说中的非阻塞式服务. 整来整去,可谓之一波三折.可是,无论怎么样,算是被我做成功了. 在tornado服务上,采用三种数据库 ...

  7. Django Model field reference

    ===================== Model field reference ===================== .. module:: django.db.models.field ...

  8. Django model对象接口

    Django model查询 # 直接获取表对应字段的值,列表嵌元组形式返回 Entry.objects.values_list('id', 'headline') #<QuerySet [(1 ...

  9. Django学习之四:Django Model模块

    目录 Django Model 模型 MODEL需要在脑子里记住的基础概念 区分清楚,必须不能混淆的 class Meta 内嵌元数据定义类 简单model创建实例 数据源配置 接着通过models在 ...

  10. Django Model Form

    ModelForm ModelForm结合了Form和Model,将models的field类型映射成forms的field类型,复用了Model和Model验证, 写更少的代码,并且还实现了存储数据 ...

随机推荐

  1. SpringBoot 封装返回类以及session 添加获取

    1.创建返回类Result public class Result<T>{ /*错误码*/ private Integer code; /*提示信息 */ private String m ...

  2. php 判断字符串中是否包含另一个字符串 strpos

    strpos (PHP 4, PHP 5, PHP 7) strpos — 查找字符串首次出现的位置 说明 strpos ( string $haystack ,  $needle [, int $o ...

  3. File类--System.out.print(Object obj)的理解

    一.File 类(java.io) 概述:Java中使用File类来表示文件或者文件夹对象!     抽象路径名:描述文件或文件夹时,使用的路径符号,就是一个对象的字符串表示形式,如"c:\ ...

  4. STM8 PIN setting(output)

    今日在设置引脚输出的时候,本想设置为open-drain输出,然后对其输出高低.但是发现无法输出高(初始化为开漏低电平),始终为低.后来改为push-pull 输出,就能输出高低了.真有意思,转到SP ...

  5. JavaScript命名——name不能做变量名

    使用name作为变量名(var name = ‘’),在IE中未引起bug,在Chrome中引起bug但未明确指出命名错误,而是会报其他错误,故不便于发现. 现象原因: javascript中name ...

  6. Windows Azure 配置Active Directory 主机(2)

    前一篇概况给大家介绍了,在云端部署一台DC 需要满足一些条件,接下来进入正题,云端VM安装域控制器具体步骤. 步骤1 :验证 主DC 的静态 IP 地址 1.登录到 Corp 网络上的 主DC. 2. ...

  7. Mysql安装报错解决办法

    .msi版MySQL安装包在安装最后执行的时候到第三部或者第四部死掉 主要是因为之前安装的版本没有卸载干净,要卸载干净MySQ安装包有一些几个步骤: 1.通过卸载程序MySQL的相关组件 2.删除My ...

  8. Autoit3 如何捕足控件

    以任务管理器为例,在命令行提示符下输入taskmgr.exe 接下来识别这个窗口上的控件 在AU3  中提供了一个捕捉控件的工具是Au3Info.exe 这里记录了控件的标题,控件的类型,控件的坐标和 ...

  9. 【Python图像特征的音乐序列生成】一个更科学的图片分类参考方法,以及一个看起来很好用的数据集

    数据集地址:http://www.imageemotion.org/ 论文地址:http://www.doc88.com/p-1905670442096.html

  10. 新萝卜家园GHOST WIN7系统32,64位官方版下载

    来自系统妈:http://www.xitongma.com 新萝卜家园GHOST win7系统64位官方经典版 V2016年3月 系统概述 新萝卜家园ghost win7系统64位官方经典版加快“网上 ...