15325@qq.com
|
2.0/chapter06/#457 |
2009-11-16 14:37:57
|
管理工具有一个用户权限系统,通过它你可以根据用户的需要来指定他们的权限,从而达到部分访问系统的目的。
|
|
15325@qq.com
|
2.0/chapter06/#456 |
2009-11-16 14:33:04
|
然而,不同的环境要求有不同的权限,系统不允许所有人都是超级用户。
|
|
15325@qq.com
|
2.0/chapter06/#453 |
2009-11-16 14:27:35
|
用户、用户组和权限
|
|
15325@qq.com
|
2.0/chapter06/#451 |
2009-11-16 14:26:04
|
考虑到人们通常不会记住这些数据库ID,管理工具提供了一个放大镜图标方便你输入。点击那个图标将会弹出一个窗口,在那里你可以选择想要添加的publishe。
|
|
15325@qq.com
|
2.0/chapter06/#450 |
2009-11-16 12:31:11
|
publisher的数据库ID号。
|
|
15325@qq.com
|
2.0/chapter06/#449 |
2009-11-16 12:30:36
|
在这个输入框中,你输入什么呢?
|
|
15325@qq.com
|
2.0/chapter06/#447 |
2009-11-16 12:28:55
|
含raw_id_fields的book编辑页面
|
|
15325@qq.com
|
2.0/chapter06/#446 |
2009-11-16 12:28:30
|
图 6-14.
|
|
15325@qq.com
|
2.0/chapter06/#442 |
2009-11-16 12:27:53
|
解决这个问题的办法是使用<literal> raw_id_fields</literal> 选项。它是一个包含外键字段名称的元组,它包含的字段将被展现成<literal> 文本框</literal> ,而不再是<literal> 下拉框</literal> 。见图 6-14。
|
|
15325@qq.com
|
2.0/chapter06/#442 |
2009-11-16 12:27:34
|
解决这个问题的办法是使用<literal> raw_id_fields</literal> 选项。它是一个包含外键字段名称的元组,它包含的字段将被展现成文本框(<literal></literal> ),而不再是<literal> 下拉框</literal> 。见图 6-14。
|
|
15325@qq.com
|
2.0/chapter06/#442 |
2009-11-16 12:27:25
|
解决这个问题的办法是使用<literal> raw_id_fields</literal> 选项。它是一个包含外键字段名称的元组,它包含的字段将被展现成文本框(<literal></literal> ),而不再是<literal> 下拉框</literal> 。见图 6-14。
|
|
15325@qq.com
|
2.0/chapter06/#440 |
2009-11-16 12:19:38
|
例如,我们的book数据库膨胀到拥有数千条publishers的记录,以致于book的添加页面装载时间较久,因为它必须把每一个publishe都装载并显示在<literal> 下拉框</literal> 中。
|
|
15325@qq.com
|
2.0/chapter06/#440 |
2009-11-16 12:19:06
|
例如,我们的book数据库膨胀到拥有数千条publishers的记录,以至于book的添加页面装载时间较久,因为它必须把每一个publishe都装载并显示在<literal> 下拉框</literal> 中。
|
|
15325@qq.com
|
2.0/chapter06/#439 |
2009-11-16 12:12:49
|
默认地,管理工具使用<literal> 下拉框</literal> 来展现<literal> 外键</literal> 字段。但是,正如<literal> 多对多字段</literal> 那样,有时候你不想忍受因装载并显示这些选项而产生的大量开销。
|
|
15325@qq.com
|
2.0/chapter06/#438 |
2009-11-16 12:00:51
|
<literal>filter_horizontal</literal>和<literal>filter_vertical</literal>选项只能用在<literal>多对多字段</literal> 上, 而不能用于 <literal>ForeignKey</literal>字段。
|
|
15325@qq.com
|
2.0/chapter06/#436 |
2009-11-16 11:59:14
|
至于使用哪个,只是个人喜好问题。
|
|
15325@qq.com
|
2.0/chapter06/#435 |
2009-11-16 11:57:41
|
它像<literal>filter_horizontal</literal>那样工作,除了控件都是垂直排列,而不是水平排列的。
|
|
15325@qq.com
|
2.0/chapter06/#434 |
2009-11-16 11:53:03
|
<literal>ModelAdmin</literal>类还支持<literal>filter_vertical</literal>选项。
|
|
15325@qq.com
|
2.0/chapter06/#432 |
2009-11-16 11:52:29
|
你可以在多个字段上使用<literal>filter_horizontal</literal>,只需在这个元组中指定每个字段的名字。
|
|
15325@qq.com
|
2.0/chapter06/#431 |
2009-11-16 11:50:35
|
这比多选框好用多了。
|
|
15325@qq.com
|
2.0/chapter06/#430 |
2009-11-16 11:49:49
|
我们强烈建议针对那些拥有十个以上选项的<literal> 多对多字段</literal> 使用<literal>filter_horizontal</literal>。
|
|
15325@qq.com
|
2.0/chapter06/#424 |
2009-11-16 11:48:32
|
刷新book编辑页面,你会看到Author区中有一个精巧的JavaScript过滤器,它允许你检索选项,然后将选中的authors从Available框移到Chosen框,还可以移回来。
|
|
15325@qq.com
|
2.0/chapter06/#428 |
2009-11-16 11:47:48
|
含filter_horizontal的book编辑页面
|
|
15325@qq.com
|
2.0/chapter06/#427 |
2009-11-16 11:47:10
|
图 6-13.
|
|
15325@qq.com
|
2.0/chapter06/#424 |
2009-11-16 11:46:15
|
刷新books编辑页面,你会看到Author区中有一个精巧的JavaScript过滤器,它允许你检索选项,然后将选中的authors从Available框移到Chosen框,还可以移回来。
|
|
|
2.0/chapter06/#538 |
2009-11-16 11:45:25
|
<reference name="next chapter" refuri="../chapter07/"></reference>, 我们将转入到网站开发的实战环节:
|
|
15325@qq.com
|
2.0/chapter06/#422 |
2009-11-16 11:35:54
|
(如果你一着跟着做练习,请注意移除<literal>fields</literal>选项,以使得编辑页面包含所有字段。)
|
|
15325@qq.com
|
2.0/chapter06/#419 |
2009-11-16 11:33:41
|
更好的办法是使用<literal>filter_horizontal</literal>。让我们把它添加到<literal>BookAdmin</literal>中,然后看看它的效果。
|
|
15325@qq.com
|
2.0/chapter06/#417 |
2009-11-16 11:31:35
|
虽然管理工具因此添加了注释(help_text),但是当它有几百个选项时,它依然显得笨拙。
|
|
15325@qq.com
|
2.0/chapter06/#416 |
2009-11-16 11:21:54
|
如果你想选择多项,你必须还要按下Ctrl键(苹果机是command键)。
|
|
15325@qq.com
|
2.0/chapter06/#415 |
2009-11-16 11:20:30
|
真如我们在book编辑页面看到的那样,<literal> 多对多字段</literal> 被展现成多选框。虽然多选框在逻辑上是最适合的HTML控件,但它却不那么好用。
|
|
15325@qq.com
|
2.0/chapter06/#415 |
2009-11-16 11:20:16
|
真如我们在book编辑页面看到的那样,<literal> 多对多字段</literal> 被展现成多选框。虽然多选框在逻辑上是最适合的HTML控件,但却不那么好用。
|
|
15325@qq.com
|
2.0/chapter06/#414 |
2009-11-16 11:16:07
|
另一个常用的编辑页面自定义是针对多对多字段的。
|
|
15325@qq.com
|
2.0/chapter06/#412 |
2009-11-16 11:13:30
|
当一个用户用这个不包含完整信息的表单添加一本新书时,Django会简单地将<literal>publication_date</literal>设置为<literal>None</literal>,以确保这个字段满足<literal>null=True</literal>的条件。
|
|
15325@qq.com
|
2.0/chapter06/#410 |
2009-11-16 11:09:37
|
(当然,这纯粹是一个假设的例子。)
|
|
15325@qq.com
|
2.0/chapter06/#409 |
2009-11-16 11:08:57
|
如果你是一个编辑,不希望作者推迟出版日期的话,这个功能就很有用。
|
|
15325@qq.com
|
2.0/chapter06/#408 |
2009-11-16 11:06:40
|
这样,在编辑页面就无法对publication date进行改动。
|
|
15325@qq.com
|
2.0/chapter06/#408 |
2009-11-16 11:06:17
|
这样,编辑页面就不会允许对publication date进行改动。
|
|
15325@qq.com
|
2.0/chapter06/#405 |
2009-11-16 11:04:20
|
例如,在book数据库中,我们可以隐藏<literal>publication_date</literal>,以防止它被编辑。
|
|
yinjihua
|
2.0/chapter08/#140 |
2009-11-15 12:38:23
|
非命名组所遵循的算法:
|
学习中
|
yinjihua
|
2.0/chapter08/#139 |
2009-11-15 12:37:29
|
具体地,以下是URLconf解释器有关正则表达式中命名组和
|
非命名组所遵循的算法。
|
yinjihua
|
2.0/chapter08/#74 |
2009-11-15 12:36:00
|
这里我们要特别说明一下,patterns()返回的对象是可相加的,这个特性可能是大家没有想到的。
|
学习中
|
yinjihua
|
2.0/chapter08/#90 |
2009-11-15 12:31:03
|
位置参数
|
学习中
|
yinjihua
|
2.0/chapter08/#89 |
2009-11-15 12:30:10
|
关键字参数 对比
|
位置参数
|
yinjihua
|
2.0/chapter08/#73 |
2009-11-15 12:28:36
|
整个框架关注的是存在一个名为 <literal>urlpatterns</literal> 的模块级别的变量。如上例,这个变量可以动态生成。
|
不知哪位兄弟忘翻译了This variable 。。。这个部分。补充一下
|
yinjihua
|
2.0/chapter08/#4 |
2009-11-15 12:23:11
|
在这一章,将进一步说明框架中这两个部分的高级机能。
|
django学习中
|
yinjihua
|
2.0/chapter08/#3 |
2009-11-15 12:19:52
|
在第三章,我们已经对基本的Django试图和URL配置做了介绍。
|
在学习中
|
achaoge
|
2.0/chapter10/#88 |
2009-11-14 18:47:19
|
执行在开发环境步骤中,第三步的<literal>ALTER TABLE</literal>语句
|
|
achaoge
|
2.0/chapter10/#86 |
2009-11-14 18:44:53
|
启动数据库的交互界面。
|
|
IIssNan
|
2.0/chapter07/#342 |
2009-11-14 11:01:35
|
在Django社区上会经常看到django.newforms这个词语。当人们讨论django.newforms,其实就是我们本章里面介绍的django.forms。
|
|