在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定时杀进程
Jun 06 Python
python 实现tar文件压缩解压的实例详解
Aug 20 Python
Django在win10下的安装并创建工程
Nov 20 Python
Django中间件实现拦截器的方法
Jun 01 Python
Python 判断图像是否读取成功的方法
Jan 26 Python
wxPython电子表格功能wx.grid实例教程
Nov 19 Python
python取均匀不重复的随机数方式
Nov 27 Python
Python实现新型冠状病毒传播模型及预测代码实例
Feb 05 Python
Python的pygame安装教程详解
Feb 10 Python
解决paramiko执行命令超时的问题
Apr 16 Python
Python可视化工具如何实现动态图表
Oct 23 Python
python调用ffmpeg命令行工具便捷操作视频示例实现过程
Nov 01 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设计模式之简单工厂模式详解
2014/09/04 PHP
PHP可变函数学习小结
2015/11/29 PHP
php中青蛙跳台阶的问题解决方法
2018/10/14 PHP
PHP随机数函数rand()与mt_rand()的讲解
2019/03/25 PHP
PHP之多条件混合筛选功能的实现方法
2019/10/09 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
2020/02/11 PHP
window.addeventjs事件驱动函数集合addEvent等
2008/02/19 Javascript
jQuery 获取URL参数的插件
2010/03/04 Javascript
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
jQuery EasyUI API 中文文档 - TreeGrid 树表格使用介绍
2011/11/21 Javascript
jquery实现非叠加式的搜索框提示效果
2014/01/07 Javascript
动态添加删除表格行的js实现代码
2014/02/28 Javascript
javascript定时器完整实例
2015/02/10 Javascript
微信小程序 删除项目工程实现步骤
2016/11/10 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
2017/04/10 jQuery
jquery easyui如何实现格式化列
2017/07/30 jQuery
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
JS 实现百度搜索功能
2018/02/01 Javascript
jQuery实现获取选中复选框的值实例详解
2018/06/28 jQuery
Angular6中使用Swiper的方法示例
2018/07/09 Javascript
vue-cli3使用 DllPlugin 实现预编译提升构建速度
2019/04/24 Javascript
layui之table checkbox初始化时选中对应选项的方法
2019/09/02 Javascript
使用 Element UI Table 的 slot-scope方法
2019/10/10 Javascript
JS中的继承操作实例总结
2020/06/06 Javascript
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
Python脚本获取操作系统版本信息
2016/12/17 Python
Python OpenCV图像指定区域裁剪的实现
2019/10/30 Python
python小项目之五子棋游戏
2019/12/26 Python
Python如何输出百分比
2020/07/31 Python
Python3+Flask安装使用教程详解
2021/02/16 Python
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
希尔顿酒店官方网站:Hilton Hotels
2017/06/01 全球购物
领导干部作风整顿剖析材料
2014/10/11 职场文书
2016年元旦致辞
2015/08/01 职场文书
python 实现mysql自动增删分区的方法
2021/04/01 Python
css 中多种边框的实现小窍门
2021/04/07 HTML / CSS