|
2.0/chapter10/#232 |
2010-01-05 16:42:29
|
结论是,你通常要小心的选择你的默认manager.由于覆盖get_query_set(),你可能接受到一个无用的返回对像,你必须避免这种情况.
|
|
|
2.0/chapter10/#231 |
2010-01-05 16:37:09
|
Django将会把第一个manager定义为默认manager,Django的许多部分(但是不包括admin应用)将会明确的为模型使用这个manager.
|
|
|
2.0/chapter10/#230 |
2010-01-05 16:33:28
|
如果你自定义了Manager对像.请注意,第一个Manager(它在模型中被定义的位置)会有一个特殊状态.
|
|
|
2.0/chapter10/#228 |
2010-01-05 16:31:00
|
这个例子允许你执行Person.men.all(),Person.women.all(),Person.people.all()查询,生成你想要的结果.
|
|
|
2.0/chapter10/#225 |
2010-01-05 16:28:56
|
例如:
|
|
|
2.0/chapter10/#223 |
2010-01-05 16:28:39
|
这是一个为模型添加通过滤器的简单方法.
|
|
|
2.0/chapter10/#222 |
2010-01-05 16:27:39
|
只要你愿意,你可以为你的模型添加多个manager()实例.
|
|
|
2.0/chapter10/#221 |
2010-01-05 16:26:31
|
在同一个模型中使用多个manager.
|
|
|
2.0/chapter10/#220 |
2010-01-05 16:25:55
|
这个例子也指出了其他有趣的技术:
|
|
|
2.0/chapter10/#217 |
2010-01-05 16:25:16
|
像这些语法都是正确的.
|
|
|
2.0/chapter10/#217 |
2010-01-05 16:25:09
|
像这些语法都是正确的.
|
|
|
2.0/chapter10/#216 |
2010-01-05 16:24:18
|
当然,由于get_query_set()返回的是一个QuerySet对像,所以我们可以使用filter(),exclude()和其他一切QuerySet的方法.
|
|
|
2.0/chapter10/#214 |
2010-01-05 16:22:35
|
注意我们明确的将objects设置成manager的实例,是因为如果我们不这么做,那么唯一可用的manager就将是dah1_objects.
|
|
|
2.0/chapter10/#213 |
2010-01-05 16:20:01
|
在这个示例模型中,Book.objects.all()返回了数据库中的所有书本,而Book.dahl_objects.all()只返回了一本.
|
|
|
2.0/chapter10/#210 |
2010-01-05 16:17:46
|
例如,下面的模型有两个manager.一个返回所有对像,另一个只返回作者是Roald Dahl的书.
|
|
|
2.0/chapter10/#208 |
2010-01-05 16:16:26
|
get_query_set()按照你的要求返回一个QuerySet.
|
|
|
2.0/chapter10/#208 |
2010-01-05 16:16:13
|
get_query_set()按照你的要求返回一个QuerySet
|
|
|
2.0/chapter10/#207 |
2010-01-05 16:15:20
|
我们可以通过覆盖Manager.get_query_set()方法来覆盖manager的基本QuerySet.
|
|
|
2.0/chapter10/#205 |
2010-01-05 16:13:55
|
例如,Book.objects.all返回数据库book中的所有书本.
|
|
|
2.0/chapter10/#204 |
2010-01-05 16:13:09
|
一个manager的基本QuerySet返回系统中的所有objects.
|
|
|
2.0/chapter10/#202 |
2010-01-05 16:12:20
|
修改初始Manager QuerySets
|
|
|
2.0/chapter10/#200 |
2010-01-05 16:11:50
|
为什么我们要添加一个title_count()方法呢?是为了将经常使用的查询进行封装,这样我们就不必重复的编码了.
|
|
|
2.0/chapter10/#198 |
2010-01-05 16:09:28
|
我们命名他为objects而不是其它的,是为了与自动创建的manager保持一致.
|
|
|
2.0/chapter10/#197 |
2010-01-05 16:06:28
|
它将取代模型的默认manager,如果我们没有特别自定义一个manager叫objects,它将会被自动建.
|
|
|
2.0/chapter10/#196 |
2010-01-05 16:04:40
|
我们把BookManager()赋值给模型的objects属性.
|
|
|
2.0/chapter10/#196 |
2010-01-05 16:04:08
|
我们把BookManager()赋值给模型的objects属性
|
|
|
2.0/chapter10/#194 |
2010-01-05 16:03:27
|
注意,这个方法使用了self.filter(),此处self指manager本身
|
|
|
2.0/chapter10/#193 |
2010-01-05 16:02:42
|
我们建立了一个BookManager类,它继承了django.db.models.Manager.只拥有一个title_count()方法用来做统计.
|
|
|
2.0/chapter10/#184 |
2010-01-05 16:00:42
|
例如,我们为Book模型定义了一个title_count()方法,它需要一个关键字,返回包含这个关键字的书的数量.
|
|
looeny@gmail.com
|
2.0/chapter05/#195 |
2010-01-05 16:00:27
|
我们可以在<literal> mysite</literal> 项目目录下执行上章所提到的<literal> python manage.py shell</literal> 来进行测试。
|
python manager.py shell中manager。py应该为manage.py
|
|
2.0/chapter09/#257 |
2010-01-02 15:37:55
|
当自动转意开启时,使用escape过滤器似乎会两次转意数据,但其实没有任何危险.因为escape过滤器不作用于被转意的变量.
|
|
|
2.0/chapter09/#253 |
2010-01-02 15:34:25
|
通常,模板作者没必要为自动转意担心.
|
|
|
2.0/chapter09/#265 |
2010-01-02 14:38:16
|
这是由于字符常量完全由模板作者决定,因此编写模板的时候必须确保文本的正确性.
|
|
|
2.0/chapter09/#264 |
2010-01-02 14:37:30
|
所有字符常量没有经过转义就被插入模板,就如同它们都经过了safe过滤
|
|
|
2.0/chapter09/#256 |
2010-01-02 14:37:02
|
如果你正在编写一个模板而不知道是否要关闭自动转意,那就为所有需要转意的变量添加一个escape过滤器.
|
|
|
2.0/chapter09/#248 |
2010-01-02 14:36:11
|
由于在base模板中自动转意被关闭,所以在child模板中自动转意也会关闭.因此,在下面一段HTML被提交时,变量greeting的值就为字符串Hello!
|
|
|
2.0/chapter09/#244 |
2010-01-02 14:35:31
|
auto-escaping 标签的作用域不仅可以影响到当前模板还可以通过include标签作用到其他标签,就像block标签一样
|
|
|
2.0/chapter09/#239 |
2010-01-02 14:34:45
|
autoescape 标签有两个参数on和off
|
|
|
2.0/chapter09/#236 |
2010-01-02 14:33:45
|
为了控制模板的自动转意,用标签autoescape来包装整个模板(或者模板中常用的部分),就像这样
|
|
|
2.0/chapter09/#256 |
2010-01-02 14:30:15
|
如果你正在编写一个模板而不知道是否要关闭自动转意,那就为所有需要转意的变量添加一个<literal> escape</literal> 过滤器.
|
|
|
2.0/chapter09/#254 |
2010-01-02 14:27:32
|
基于pyhton的开发者(编写VIEWS视图和自定义过滤器)只需要考虑哪些数据不需要被转意,适时的标记数据,就可以让它们在模板中工作
|
|
|
2.0/chapter09/#253 |
2010-01-02 14:24:04
|
通常,模板作者没必要为自动转意担心
|
|
|
2.0/chapter09/#248 |
2010-01-02 14:23:14
|
由于在base模板中自动转意被关闭,所以在child模板中自动转意也会关闭.因此,在下面一段HTML被提交时,变量<literal>greeting </literal> 值就为字符串<literal>Hello! </literal> |
|
|
2.0/chapter09/#244 |
2010-01-02 14:16:03
|
auto-escaping 标签的作用域不公可以影响到当前模板还可以通过<literal>include </literal> 标签作用到其他标签,就像block标签一样
|
|
|
2.0/chapter09/#240 |
2010-01-02 14:09:47
|
同时,你可能想阻止一部分自动转意,对另一部分自动转意
|
|
|
2.0/chapter09/#239 |
2010-01-02 13:51:28
|
<literal>autoescape </literal> 标签有两个参数<literal> on</literal> 和<literal> off</literal> |
|
|
2.0/chapter09/#236 |
2010-01-02 13:47:57
|
为了控制模板的自动转意,用标签<literal>autoescape </literal> 来包装整个模板(或者模板中常用的部分),就像这样
|
|
|
2.0/chapter09/#274 |
2010-01-02 13:44:30
|
如果必要,变量内容会自然的转义,因为它们始终都在模板作者的控制下.
|
|
|
2.0/chapter09/#273 |
2010-01-02 13:35:48
|
来源于自变量的数据不受影响
|
|
|
2.0/chapter09/#273 |
2010-01-02 13:34:19
|
这对来源于自变量的数据不起作用
|
|