目录
1.1.1 生成查询
1.1.2 创建对象
1.1.3 保存修改的对象
1.1.4 保存 ForeignKey 和 ManyToManyField 字段
1.1.5 检索对象
1.1.6 检索所有的对象
1.1.7 过滤检索特定对象
1.1.8 链接过滤
1.1.9 过滤结果集是唯一
1.2.1 结果集是延迟的
1.2.2 其他的QuerySet方法
1.2.3 限制 QuerySets
1.2.4 字段查找
1.2.5 跨关系查询
1.2.6 过滤器可参考模型字段
1.2.7 缓存查询集
1.2.8 比较对象
1.2.9 删除对象
1.3.1 一次修改多个对象
1.3.2 关系对象
1.3.3 One-to-many关系
1.3.4 Many-to-many关系
1.3.5 One-to-one关系
1.1.1 生成查询
你创建完数据模型,django会自动提供给你数据库抽象的API,可以创建、获取、修改、删除对象,本篇文档讲解如何使用API。
我们参考下面模型,一个weblog:
#博客 class Blog(models.Model): name = models.CharField(max_length=100) tagline = models.TextField() def __unicode__(self): return self.name #作者 class Author(models.Model): name = models.CharField(max_length=50) email = models.EmailField() def __unicode__(self): return self.name #目录 class Entry(models.Model): blog = models.ForeignKey(Blog) headline = models.CharField(max_length=255) body_text = models.TextField() pub_date = models.DateTimeField() authors = models.ManyToManyField(Author) n_comments = models.IntegerField() n_pingbacks = models.IntegerField() rating = models.IntegerField() def __unicode__(self): return self.headline
1.1.2 创建对象
用python对象描述数据库表的数据,django使用一个直观的系统,一个模型类描述一个数据表,一个类的实例描述表的一条详细记录。使用模型的save()方法将对象创建到数据库。
from mysite.blog.models import Blog b = Blog(name=‘Beatles Blog‘, tagline=‘All the latest Beatles news.‘) b.save()
只有执行save方法时,django才会执行sql把对象写入数据库。
1.1.3 保存修改的对象
保存修改仍然使用save()方法
b5.name = ‘New name‘ b5.save()
1.1.4 保存 ForeignKey 和 ManyToManyField 字段
cheese_blog = Blog.objects.get(name="Cheddar Talk") entry.blog = cheese_blog #为 ManyToManyField 增加记录 entry.save() joe = Author.objects.create(name="Joe") entry.authors.add(joe) #为 ForeignKey 增加记录
1.1.5 检索对象
xxxx
1.1.6 检索所有的对象
xxxx
1.1.7 过滤检索特定对象
xxxx
1.1.8 链接过滤
xxxx
1.1.9 过滤结果集是唯一
xxxx
1.2.1 结果集是延迟的
xxxx
1.2.2 其他的QuerySet方法
xxxx
1.2.3 限制 QuerySets
xxxx
1.2.4 字段查找
xxxx
1.2.5 跨关系查询
xxxx
1.2.6 过滤器可参考模型字段
xxxx
1.2.7 缓存查询集
xxxx
1.2.8 比较对象
xxxx
1.2.9 删除对象
xxxx
1.3.1 一次修改多个对象
xxxx
1.3.2 关系对象
xxxx
1.3.3 One-to-many关系
xxxx
1.3.4 Many-to-many关系
xxxx
1.3.5 One-to-one关系
xxxx