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. Java并发(二):基础概念

    并发编程的第二部分,先来谈谈发布(Publish)与逸出(Escape); 发布是指:对象能够在当前作用域之外的代码中使用,例如:将对象的引用传递到其他类的方法中,对象的引用保存在其他类可以访问的地方 ...

  2. Kendo UI 模板概述

    Kendo UI 模板概述 Kendo UI 框架提供了一个易用,高性能的 JavaScript 模板引擎.通过模板可以创建一个 HTML 片段然后可以和 JavaScript 数据合并成最终的 HT ...

  3. Log Structured Merge Trees(LSM) 算法

    十年前,谷歌发表了 “BigTable” 的论文,论文中很多很酷的方面之一就是它所使用的文件组织方式,这个方法更一般的名字叫 Log Structured-Merge Tree. LSM是当前被用在许 ...

  4. 关于ev||event事件对象的兼容写法

    因为FireFox Chrome默认都是有一个值传进来的,所以这里是对IE和FireFox Chrome做了兼容. 例如:页面点击事件事件要使用document,获取鼠标位置 document.onc ...

  5. 第一篇Active Directory疑难解答概述(2)

    从故障诊断的角度来看,无论用户对象存在于哪个Active Directory域中,Exchange都需要访问此数据.这意味着所有包含启用Exchange的对象的域必须对其运行Setup / Prepa ...

  6. javaSe-String/StringBuffer

    //String字符串.在进行字符串拼接的时候总是改变栈中指向堆中的位置 //StringBuffer字符串.在进行字符串拼接的时候不改变栈中指向堆中的位置 package com.java.chap ...

  7. 学习Unity 4.6新GUI系统

    (搬运自我在SegmentFault的博客) 最近在学习Unity的过程中,自己做一款小游戏自娱自乐.自然需要用到GUI.但4.5中的GUI很难用,一个选择是传说中的NGUI插件.但对于4.6中的新G ...

  8. 【UML】构件图Component diagram(实现图)(转)

    http://blog.csdn.net/sds15732622190/article/details/49048887 前言 下面要介绍UML中的构建图,它属于实现图的一种,五种静态图之一. 定义 ...

  9. stixel-world和psmnet结合出现的问题

    float32位,4字节 原本的stixel-world是用sgbm生成深度图,并且转成了float型 psmnet保存最终的disparity图是保存成uint16的,skimage.io.imsa ...

  10. 通过luac编译lua脚本

    在lua官网下载一个lua的release包,里面有已经编译好的lua启动文件(包括lua.exe),其中还有luac.exe, 这个程序是用来将lua文件编译成二进制码, 使用方法很简单,在控制台调 ...