在Django的form中使用CSS进行设计的方法
修改form的显示的最快捷的方式是使用CSS。尤其是错误列表,可以增强视觉效果。自动生成的错误列表精确的使用``<ulclass=”errorlist”>``,这样,我们就可以针对它们使用CSS。下面的CSS让错误更加醒目了:
<styletype="text/css">
ul.errorlist{
margin:0;
padding:0;
}
.errorlistli{
background-color:red;
color:white;
display:block;
font-size:10px;
margin:003px;
padding:4px5px;
}
</style>
虽然,自动生成HTML是很方便的,但是在某些时候,你会想覆盖默认的显示。{{form.as_table}}和其它的方法在开发的时候是一个快捷的方式,form的显示方式也可以在form中被方便地重写。
每一个字段部件(<inputtype=”text”>,<select>,<textarea>,或者类似)都可以通过访问{{form.字段名}}进行单独的渲染。
<html>
<head>
<title>Contactus</title>
</head>
<body>
<h1>Contactus</h1>
{%ifform.errors%}
<pstyle="color:red;">
Pleasecorrecttheerror{{form.errors|pluralize}}below.
</p>
{%endif%}
<formaction=""method="post">
<divclass="field">
{{form.subject.errors}}
<labelfor="id_subject">Subject:</label>
{{form.subject}}
</div>
<divclass="field">
{{form.email.errors}}
<labelfor="id_email">Youre-mailaddress:</label>
{{form.email}}
</div>
<divclass="field">
{{form.message.errors}}
<labelfor="id_message">Message:</label>
{{form.message}}
</div>
<inputtype="submit"value="Submit">
</form>
</body>
</html>
{{form.message.errors}}会在<ulclass="errorlist">里面显示,如果字段是合法的,或者form没有被绑定,就显示一个空字符串。我们还可以把form.message.errors当作一个布尔值或者当它是list在上面做迭代,例如:
<divclass="field{%ifform.message.errors%}errors{%endif%}">
{%ifform.message.errors%}
<ul>
{%forerrorinform.message.errors%}
<li><strong>{{error}}</strong></li>
{%endfor%}
</ul>
{%endif%}
<labelfor="id_message">Message:</label>
{{form.message}}
</div>
在校验失败的情况下,这段代码会在包含错误字段的div的class属性中增加一个”errors”,在一个有序列表中显示错误信息。