在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”,在一个有序列表中显示错误信息。