在Django的form中使用CSS进行设计的方法


Posted in Python onJuly 18, 2015

修改form的显示的最快捷的方式是使用CSS。 尤其是错误列表,可以增强视觉效果。自动生成的错误列表精确的使用`` <ul class=”errorlist”>``,这样,我们就可以针对它们使用CSS。 下面的CSS让错误更加醒目了:

<style type="text/css">
  ul.errorlist {
    margin: 0;
    padding: 0;
  }
  .errorlist li {
    background-color: red;
    color: white;
    display: block;
    font-size: 10px;
    margin: 0 0 3px;
    padding: 4px 5px;
  }
</style>

虽然,自动生成HTML是很方便的,但是在某些时候,你会想覆盖默认的显示。 {{form.as_table}}和其它的方法在开发的时候是一个快捷的方式,form的显示方式也可以在form中被方便地重写。

每一个字段部件(<input type=”text”>, <select>, <textarea>, 或者类似)都可以通过访问{{form.字段名}}进行单独的渲染。

<html>
<head>
  <title>Contact us</title>
</head>
<body>
  <h1>Contact us</h1>

  {% if form.errors %}
    <p style="color: red;">
      Please correct the error{{ form.errors|pluralize }} below.
    </p>
  {% endif %}

  <form action="" method="post">
    <div class="field">
      {{ form.subject.errors }}
      <label for="id_subject">Subject:</label>
      {{ form.subject }}
    </div>
    <div class="field">
      {{ form.email.errors }}
      <label for="id_email">Your e-mail address:</label>
      {{ form.email }}
    </div>
    <div class="field">
      {{ form.message.errors }}
      <label for="id_message">Message:</label>
      {{ form.message }}
    </div>
    <input type="submit" value="Submit">
  </form>
</body>
</html>

{{ form.message.errors }} 会在 <ul class="errorlist"> 里面显示,如果字段是合法的,或者form没有被绑定,就显示一个空字符串。 我们还可以把 form.message.errors 当作一个布尔值或者当它是list在上面做迭代, 例如:

<div class="field{% if form.message.errors %} errors{% endif %}">
  {% if form.message.errors %}
    <ul>
    {% for error in form.message.errors %}
      <li><strong>{{ error }}</strong></li>
    {% endfor %}
    </ul>
  {% endif %}
  <label for="id_message">Message:</label>
  {{ form.message }}
</div>

在校验失败的情况下, 这段代码会在包含错误字段的div的class属性中增加一个”errors”,在一个有序列表中显示错误信息。

Python 相关文章推荐
python抓取网页图片示例(python爬虫)
Apr 27 Python
在Python中使用mechanize模块模拟浏览器功能
May 05 Python
在Python的Flask框架中验证注册用户的Email的方法
Sep 02 Python
python实现换位加密算法的示例
Oct 14 Python
python实现二维插值的三维显示
Dec 17 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
Dec 18 Python
VSCode Python开发环境配置的详细步骤
Feb 22 Python
使用celery和Django处理异步任务的流程分析
Feb 19 Python
如何利用Python动态模拟太阳系运转
Sep 04 Python
python实现发送邮件
Mar 02 Python
Python Flask搭建yolov3目标检测系统详解流程
Nov 07 Python
python解析json数据
Apr 29 Python
在Django的视图中使用form对象的方法
Jul 18 #Python
详解Django中的form库的使用
Jul 18 #Python
在Django框架中编写Contact表单的教程
Jul 17 #Python
简单解析Django框架中的表单验证
Jul 17 #Python
改进Django中的表单的简单方法
Jul 17 #Python
Python的Django框架中的表单处理示例
Jul 17 #Python
Python中max函数用法实例分析
Jul 17 #Python
You might like
PHP 5.3新特性命名空间规则解析及高级功能
2010/03/11 PHP
PHP5 字符串处理函数大全
2010/03/23 PHP
yii框架中的Url生产问题小结
2012/01/16 PHP
PHP mail()函数使用及配置方法
2014/01/14 PHP
PHP中Closure类的使用方法及详解
2015/10/09 PHP
让JavaScript 轻松支持函数重载 (Part 1 - 设计)
2009/08/04 Javascript
js 通用javascript函数库整理
2011/08/14 Javascript
JavaScript设置body高度为浏览器高度的方法
2015/02/09 Javascript
基于jquery ui的alert,confirm方案(支持换肤)
2015/04/03 Javascript
解决node.js安装包失败的几种方法
2016/09/02 Javascript
使用vue制作FullPage页面滚动效果
2017/08/21 Javascript
JS禁止浏览器右键查看元素或按F12审查元素自动关闭页面示例代码
2017/09/07 Javascript
vue中配置mint-ui报css错误问题的解决方法
2017/10/11 Javascript
AngularJS 控制器 controller的详解
2017/10/17 Javascript
JS实现倒计时图文效果
2018/11/17 Javascript
layui layer select 选择被遮挡的解决方法
2019/09/21 Javascript
JavaScript检测是否开启了控制台(F12调试工具)
2020/10/02 Javascript
js实现菜单跳转效果
2020/12/11 Javascript
基于Python的XSS测试工具XSStrike使用方法
2017/07/29 Python
搭建python django虚拟环境完整步骤详解
2019/07/08 Python
Django上使用数据可视化利器Bokeh解析
2019/07/31 Python
python实现超市管理系统(后台管理)
2019/10/25 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
python连接打印机实现打印文档、图片、pdf文件等功能
2020/02/07 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
酒店公关部经理岗位职责
2013/11/24 职场文书
幼儿园亲子活动方案
2014/01/29 职场文书
团结就是力量演讲稿
2014/05/21 职场文书
经济管理专业求职信
2014/06/09 职场文书
班级活动总结格式
2014/08/30 职场文书
2014年党小组工作总结
2014/12/20 职场文书
讲座开场白台词和结束语
2015/05/29 职场文书
中国古代史学名著《战国策》概述
2019/08/09 职场文书
详解Python描述符的工作原理
2021/06/11 Python
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
2022/01/22 MySQL
详解Python中__new__方法的作用
2022/03/31 Python