在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中的序列化存储的方法
Apr 28 Python
Python实现的桶排序算法示例
Nov 29 Python
单链表反转python实现代码示例
Feb 08 Python
tensorflow建立一个简单的神经网络的方法
Feb 10 Python
Python2与Python3的区别实例分析
Apr 11 Python
Python实现将HTML转成PDF的方法分析
May 04 Python
Python求离散序列导数的示例
Jul 10 Python
简单了解python gevent 协程使用及作用
Jul 22 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
Sep 25 Python
tensorflow 获取所有variable或tensor的name示例
Jan 04 Python
Python中 Global和Nonlocal的用法详解
Jan 20 Python
使用gunicorn部署django项目的问题
Dec 30 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
大师制作的中短波矿石收音机
2020/04/02 无线电
php实现的双向队列类实例
2014/09/24 PHP
Zend Framework入门教程之Zend_Session会话操作详解
2016/12/08 PHP
javascript下高性能字符串连接StringBuffer类
2010/08/16 Javascript
js移除事件 js绑定事件实例应用
2012/11/28 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
js实现checkbox全选和反选示例
2014/05/01 Javascript
js实现编辑div节点名称的方法
2014/12/17 Javascript
jquery图片轮播特效代码分享
2020/04/20 Javascript
JavaScript 网页中实现一个计算当年还剩多少时间的倒数计时程序
2017/01/25 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
2017/02/16 Javascript
javascript数组去重常用方法实例分析
2017/04/11 Javascript
vue移动端项目缓存问题实践记录
2018/10/29 Javascript
使用rollup打包JS的方法步骤
2018/12/05 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
electron+vue实现div contenteditable截图功能
2020/01/07 Javascript
[08:02]DOTA2牵红线 zhou神抱得美人归
2014/03/22 DOTA
[00:03]DOTA2新版本PA至宝展示
2014/11/19 DOTA
Python调用SQLPlus来操作和解析Oracle数据库的方法
2016/04/09 Python
python爬虫之BeautifulSoup 使用select方法详解
2017/10/23 Python
Python文件操作基本流程代码实例
2017/12/11 Python
使用python和pygame绘制繁花曲线的方法
2018/02/24 Python
python使用筛选法计算小于给定数字的所有素数
2018/03/19 Python
对python中的six.moves模块的下载函数urlretrieve详解
2018/12/19 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
2019/08/26 Python
python encrypt 实现AES加密的实例详解
2020/02/20 Python
用HTML5实现手机摇一摇的功能的教程
2012/10/30 HTML / CSS
个人自我评价和职业目标
2014/01/24 职场文书
村干部培训班主持词
2014/03/28 职场文书
学前班评语大全
2014/05/04 职场文书
青年志愿者先进事迹
2014/05/06 职场文书
法律系毕业生求职信
2014/05/28 职场文书
转让协议书范本
2014/09/13 职场文书
2014统计局民主生活会对照检查材料思想汇报
2014/10/02 职场文书
民事调解协议书
2016/03/21 职场文书
MySQL 数据 data 基本操作
2022/05/04 MySQL