在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中Random和Math模块学习笔记
May 18 Python
python获取mp3文件信息的方法
Jun 15 Python
python opencv实现任意角度的透视变换实例代码
Jan 12 Python
matplotlib调整子图间距,调整整体空白的方法
Aug 03 Python
python递归实现快速排序
Aug 18 Python
使用pandas实现csv/excel sheet互相转换的方法
Dec 10 Python
对python使用telnet实现弱密码登录的方法详解
Jan 26 Python
用Python实现校园通知更新提醒功能
Nov 23 Python
服务器端jupyter notebook映射到本地浏览器的操作
Apr 14 Python
在ipython notebook中使用argparse方式
Apr 20 Python
Python三维绘图之Matplotlib库的使用方法
Sep 20 Python
python 使用tkinter与messagebox写界面和弹窗
Mar 20 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 分页类(模仿google)-面试题目解答
2009/09/13 PHP
PHP中浮点数计算比较及取整不准确的解决方法
2015/01/09 PHP
PHP实现的带超时功能get_headers函数
2015/02/10 PHP
PHP网站开发中常用的8个小技巧
2015/02/13 PHP
Yii扩展组件编写方法实例分析
2015/06/29 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
javascript 年月日联动实现核心代码
2009/12/21 Javascript
PHP 与 js的通信(via ajax,json)
2010/11/16 Javascript
JavaScript中OnLoad几种使用方法
2012/12/15 Javascript
jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法
2013/05/13 Javascript
Javascript 遍历页面text控件详解
2014/01/06 Javascript
微信小程序 navigation API实例详解
2016/10/02 Javascript
js将字符串中的每一个单词的首字母变为大写其余均为小写
2017/01/05 Javascript
Ionic项目中Native Camera的使用方法
2017/06/07 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
Angular 作用域scope的具体使用
2017/12/11 Javascript
vue实现动态添加数据滚动条自动滚动到底部的示例代码
2018/07/06 Javascript
vue绑定事件后获取绑定事件中的this方法
2018/09/15 Javascript
jQuery控制input只能输入数字和两位小数的方法
2019/05/16 jQuery
antd-日历组件,前后禁止选择,只能选中间一部分的实例
2020/10/29 Javascript
[01:32]DOTA2 2015国际邀请赛中国区预选赛第四日战报
2015/05/29 DOTA
Python unittest模块用法实例分析
2018/05/25 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
2018/09/25 Python
对python PLT中的image和skimage处理图片方法详解
2019/01/10 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
2020/02/26 Python
从零实现一个自定义html5播放器的示例代码
2017/08/01 HTML / CSS
选购国际女性时装设计师品牌:IFCHIC(支持中文)
2018/04/12 全球购物
英国工作场所设备购买网站:Slingsby
2019/05/03 全球购物
通用C#笔试题附答案
2016/11/26 面试题
办公室前台岗位职责范本
2013/12/10 职场文书
初中美术教学反思
2014/01/29 职场文书
财务支持类个人的自我评价
2014/02/14 职场文书
入党转正申请报告
2015/05/15 职场文书
升学宴学生致辞
2015/07/27 职场文书
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android
鸿蒙3.0体验感怎么样? 鸿蒙3.0系统评测向
2022/08/14 数码科技