Changelog

全名 页面 提交时间 (Descending) Unsort 内容 注释 ...
IIssNan 2.0/chapter07/#204 2009-11-11 15:42:12 最后,我们再稍微改进一下这个表单,去掉冗余的部分。
15325@qq.com 2.0/chapter06/#218 2009-11-11 15:40:02 在SQL中, <literal>NULL</literal>的值不同于空字符串,就像Python中<literal>None</literal>不同于空字符串(<literal>""</literal>)一样。这意味着某个字符型字段(如<literal>VARCHAR</literal>)的值不可能同时包含<literal>NULL</literal>和空字符串。
15325@qq.com 2.0/chapter06/#218 2009-11-11 15:39:45 在SQL中, <literal>NULL</literal>的值不同于空字符串,就像Python中<literal>None</literal>不同于空字符串(<literal>""</literal>)一样。这意味着某个字符型字段(如<literal>VARCHAR</literal>)不可能同时包含<literal>NULL</literal>和空字符串。
IIssNan 2.0/chapter07/#202 2009-11-11 15:36:00 最后,若用户提交了一个非空的值,那么他将看到搜索结果。
IIssNan 2.0/chapter07/#201 2009-11-11 15:35:16 如果用户提交了一个空表单,那么它将看到错误提示信息,还有表单;
15325@qq.com 2.0/chapter06/#216 2009-11-11 15:34:58 SQL有指定空值的独特方式,它把空值叫做NULL。NULL可以表示为未知的、非法的、或其它程序指定的含义。
IIssNan 2.0/chapter07/#200 2009-11-11 15:34:26 在改进后的视图中,若用户访问/search/并且没有带有GET数据,那么他将看到一个没有错误信息的表单;
15325@qq.com 2.0/chapter06/#214 2009-11-11 15:31:26 虽然<literal>blank=True</literal>同样适用于日期型和数字型字段,但是这里需要详细讲解一些背景知识。
IIssNan 2.0/chapter07/#197 2009-11-11 15:30:32 所以,只要我们改变search()视图:当用户访问/search/并未提交任何数据时就隐藏错误信息,这样就移去search_form()视图以及对应的URLpattern。
IIssNan 2.0/chapter07/#196 2009-11-11 15:28:19 按实际情况来说,当一个请求发送至/search/(未包含GET的数据)后将会显示一个空的表单(带有错误信息)。
IIssNan 2.0/chapter07/#195 2009-11-11 15:26:15 是否有必要专门编写search_form()来显示表单?
IIssNan 2.0/chapter07/#194 2009-11-11 15:20:44 通过上面的一些修改,现在程序变的好多了,但是现在出现一个问题:
IIssNan 2.0/chapter07/#192 2009-11-11 15:19:00 我们修改了search_form()视图所使用的模板,因为search_form()视图没有传递error变量,所以在条用search_form视图时不会显示错误信息。
15325@qq.com 2.0/chapter06/#212 2009-11-11 15:18:29 设置日期型和数字型字段可选
15325@qq.com 2.0/chapter06/#210 2009-11-11 15:17:51 现在你可以添加一个作者而不必输入邮箱地址,即使你为这个字段提交了一个空值,也再不会得到那刺眼的红色信息“This field is required”。
15325@qq.com 2.0/chapter06/#209 2009-11-11 15:14:01 这意味它不是一个必填字段。
15325@qq.com 2.0/chapter06/#208 2009-11-11 15:12:29 当你添加<literal>blank=True</literal>以后,刷新页面Add author edit form (<literal>http://127.0.0.1:8000/admin/books/author/add/</literal> ),将会发现Email的标签不再是粗体了。
15325@qq.com 2.0/chapter06/#206 2009-11-11 15:10:21 <literal>email</literal>不但展现为一个数据库中的<literal>VARCHAR</literal>类型的字段,它还是页面中可选的字段,就像在管理工具中看到的那样。
IIssNan 2.0/chapter07/#189 2009-11-11 15:08:35 现在我们编辑一下search_form.html,检测变量error:
15325@qq.com 2.0/chapter06/#205 2009-11-11 15:06:56 现在,我们的模块类开始成为一个富含<literal>Author</literal>对象属性和行为的集合了。
15325@qq.com 2.0/chapter06/#204 2009-11-11 15:03:53 在添加<literal>blank=True</literal>过程中,我们已经开始在简单的定义数据表上扩展我们的模块了。
15325@qq.com 2.0/chapter06/#203 2009-11-11 15:01:54 直到现在,除了<literal>__unicode__()</literal>方法,我们的模块充当数据库中表定义的角色,即本质上是用Python的语法来写<literal>CREATE TABLE</literal>语句。
15325@qq.com 2.0/chapter06/#202 2009-11-11 14:54:46 这里会发生一些有趣的事情。
15325@qq.com 2.0/chapter06/#200 2009-11-11 14:53:21 所有字段都默认<literal>blank=False</literal>,这使得它们不允许输入空值。
15325@qq.com 2.0/chapter06/#199 2009-11-11 14:51:49 这些代码告诉Django,作者的邮箱地址允许输入一个空值。
15325@qq.com 2.0/chapter06/#196 2009-11-11 14:49:36 为了指定<literal>email</literal>字段为可选,你只要编辑<literal>Book</literal>模块(回想第五章,它在<literal>mysite/books/models.py</literal>文件里),在<literal>email</literal>字段上加上<literal>blank=True</literal>。代码如下:
15325@qq.com 2.0/chapter06/#194 2009-11-11 14:43:56 在现实世界中,你可能没有为每个作者登记邮箱地址。
15325@qq.com 2.0/chapter06/#190 2009-11-11 14:42:37 设置字段可选
15325@qq.com 2.0/chapter06/#192 2009-11-11 14:42:27 在摆弄了一会之后,你或许会发现管理工具有个限制:编辑表单需要你填写每一个字段,然而在有些情况下,你想要某些字段是可选的。
15325@qq.com 2.0/chapter06/#193 2009-11-11 14:42:05 举个例子,我们想要<literal>Author</literal>模块中的<literal>email</literal>字段成为可选,即允许不填。
15325@qq.com 2.0/chapter06/#192 2009-11-11 14:39:30 在摆弄了一会之后,你或许会发现管理工具有个限制:编辑表单需要你填写每一个字段,然而在有些情况下,你想要某些字段是可填可不填的。
15325@qq.com 2.0/chapter06/#192 2009-11-11 14:39:05 在摆弄了一会之后,你或许会发现管理工具有个限制:编辑表单需要你填写每一个字段,即使在有些情况下你想要某些字段是可填可不填的。
15325@qq.com 2.0/chapter06/#190 2009-11-11 14:33:26 设置字段可选项
15325@qq.com 2.0/chapter06/#188 2009-11-11 14:32:36 (如果你确实想浏览Django管理工具的代码,请谨记它在读取关于模块的元数据过程中做了些不简单的工作,因此最好花些时间阅读和理解那些代码。)
IIssNan 2.0/chapter07/#500 2009-11-11 14:32:19 我们还可以把 <literal>form.message.errors</literal> 当作一个布尔值或者当它是list在上面做迭代,
IIssNan 2.0/chapter07/#501 2009-11-11 14:32:01 例如:
IIssNan 2.0/chapter07/#511 2009-11-11 14:31:28 在学习本书的前面七章后,我们终于对于使用Django构建自己的网站已经知道的够多了,
IIssNan 2.0/chapter07/#514 2009-11-11 14:29:03 第八章我们将回头、并深入地讲解 视图和URLconfs(第三章已简单介绍)。
15325@qq.com 2.0/chapter06/#187 2009-11-11 14:26:01 你可以在Django基本代码中的<literal>django/contrib/admin</literal> 目录下,检查它的模板、视图和URLpatterns,但你不要尝试直接修改其中的任何代码,因为里面有很多地方可以让你自定义管理工具的工作方式。
IIssNan 2.0/chapter07/#188 2009-11-11 14:25:56 并且给这个模板传递了一个变量error,记录着错误提示信息。
IIssNan 2.0/chapter07/#187 2009-11-11 14:24:55 这段代码里,我们改进来search()视图:在字符串为空时重新显示search_form.html。
IIssNan 2.0/chapter07/#185 2009-11-11 14:21:53 (注意,将search_form()视图也包含进来以便查看)
IIssNan 2.0/chapter07/#182 2009-11-11 14:21:04 最简单的实现方法既是添加else分句重新显示表单,代码如下:
IIssNan 2.0/chapter07/#181 2009-11-11 14:20:08 在检测到空字符串时更好的解决方法是重新显示表单,并在表单上面给出错误提示以便用户立刻重新填写。
15325@qq.com 2.0/chapter06/#185 2009-11-11 14:19:44 综上所述,管理工具其实就是一个Django应用程序,包含自己的模块、模板、视图和URLpatterns。
15325@qq.com 2.0/chapter06/#186 2009-11-11 14:19:23 你要像添加自己的视图一样,把它添加到URLconf里面。
IIssNan 2.0/chapter07/#179 2009-11-11 14:16:01 这种做法既糟糕又不专业。如果在现实的案例中,我们这样子编写,那么Django的优势将荡然无存。
IIssNan 2.0/chapter07/#178 2009-11-11 14:14:49 若用户要重新填写表单必须自行点击“后退”按钮,
IIssNan 2.0/chapter07/#177 2009-11-11 14:12:12 首先,search()视图对于空字符串的处理相当薄弱——仅显示一条"Please submit a search term."的提示信息。
15325@qq.com 2.0/chapter06/#182 2009-11-11 14:12:11 应用程序<literal> django.contrib.auth</literal> 包含自身的<literal> admin.py</literal> ,所以Users和Groups能在管理工具中自动显示。
« < 68 69 70 71 72 73 74 > » 96 pages