在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类参数self使用示例
Feb 17 Python
python显示天气预报
Mar 02 Python
Python3实现连接SQLite数据库的方法
Aug 23 Python
Python中的字符串查找操作方法总结
Jun 27 Python
python 根据正则表达式提取指定的内容实例详解
Dec 04 Python
详解常用查找数据结构及算法(Python实现)
Dec 09 Python
python嵌套字典比较值与取值的实现示例
Nov 03 Python
Python实现的朴素贝叶斯分类器示例
Jan 06 Python
python实现桌面壁纸切换功能
Jan 21 Python
python实现kmp算法的实例代码
Apr 03 Python
用python做游戏的细节详解
Jun 25 Python
浅谈Python中re.match()和re.search()的使用及区别
Apr 14 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中json_encode中文编码问题分析
2011/09/13 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
2013/11/07 PHP
discuz目录文件资料汇总
2014/12/30 PHP
php递归实现无限分类的方法
2015/07/28 PHP
php加密之discuz内容经典加密方式实例详解
2017/02/04 PHP
从sohu弄下来的flash中展示图片的代码
2007/04/27 Javascript
js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
2012/05/16 Javascript
jquery教程限制文本框只能输入数字和小数点示例分享
2014/01/13 Javascript
JavaScript中的Math.LOG2E属性使用详解
2015/06/14 Javascript
jQuery插件简单学习实例教程
2016/07/01 Javascript
Angularjs上传文件组件flowjs功能
2017/08/07 Javascript
通过javascript实现段落的收缩与展开
2019/06/26 Javascript
vue路由拦截器和请求拦截器知识点总结
2019/11/08 Javascript
Python创建文件和追加文件内容实例
2014/10/21 Python
python with提前退出遇到的坑与解决方案
2018/01/05 Python
Python实现PS图像调整黑白效果示例
2018/01/25 Python
numpy返回array中元素的index方法
2018/06/27 Python
详解Python中的type和object
2018/08/15 Python
python实现诗歌游戏(类继承)
2019/02/26 Python
Python这样操作能存储100多万行的xlsx文件
2019/04/16 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
2020/07/14 Python
Python WebSocket长连接心跳与短连接的示例
2020/11/24 Python
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
中国第一家杂志折扣订阅网:杂志铺
2016/08/30 全球购物
HolidayLettings英国:预订最好的度假公寓、别墅和自助式住宿
2019/08/27 全球购物
试用期员工考核制度
2014/01/22 职场文书
社区食品安全实施方案
2014/03/28 职场文书
人才市场接收函
2015/01/30 职场文书
五星级酒店前台接待岗位职责
2015/04/02 职场文书
公司备用金管理制度
2015/08/04 职场文书
2016年中秋节慰问信
2015/12/01 职场文书
2016年感恩父亲节活动总结
2016/04/01 职场文书
python numpy中setdiff1d的用法说明
2021/04/22 Python
Python基础之Socket通信原理
2021/04/22 Python
用python修改excel表某一列内容的操作方法
2021/06/11 Python
一篇文章带你掌握SQLite3基本用法
2022/06/14 数据库