在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 11 Python
跟老齐学Python之类的细节
Oct 13 Python
Python迭代器和生成器介绍
Mar 06 Python
python实现朴素贝叶斯分类器
Mar 28 Python
Python适配器模式代码实现解析
Aug 02 Python
TensorFlow实现自定义Op方式
Feb 04 Python
Python操作Excel把数据分给sheet
May 20 Python
python 绘制正态曲线的示例
Sep 24 Python
详解Django ORM引发的数据库N+1性能问题
Oct 12 Python
python 利用toapi库自动生成api
Oct 19 Python
Python机器学习算法之决策树算法的实现与优缺点
May 13 Python
Python实现自动玩连连看的脚本分享
Apr 04 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如何通过传引用的思想实现无限分类(代码简单)
2015/10/13 PHP
详解PHP序列化反序列化的方法
2015/10/27 PHP
利用switch语句进行多选一判断的实例代码
2016/11/14 PHP
Ext 表单布局实例代码
2009/04/30 Javascript
JavaScript动态创建div属性和样式示例代码
2013/10/09 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
2014/04/02 Javascript
jquery统计用户选中的复选框的个数
2014/06/06 Javascript
JS实现判断碰撞的方法
2015/02/11 Javascript
js实现的Easy Tabs选项卡用法实例
2015/09/06 Javascript
微信小程序开发教程-手势解锁实例
2017/01/06 Javascript
js实现城市级联菜单的2种方法
2017/06/23 Javascript
bootstrap是什么_动力节点Java学院整理
2017/07/14 Javascript
在vue里使用codemirror遇到的问题
2018/11/01 Javascript
使用Vue父子组件通信实现todolist的功能示例代码
2019/04/11 Javascript
微信小程序音乐播放器开发
2019/11/20 Javascript
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
2020/03/13 Javascript
React+EggJs实现断点续传的示例代码
2020/07/07 Javascript
[04:44]显微镜下的DOTA2第二期——你所没有注意到的细节
2014/06/20 DOTA
dataframe设置两个条件取值的实例
2018/04/12 Python
详解Django-auth-ldap 配置方法
2018/12/10 Python
kafka-python批量发送数据的实例
2018/12/27 Python
python3用PIL把图片转换为RGB图片的实例
2019/07/04 Python
利用python实现冒泡排序算法实例代码
2019/12/01 Python
python实现ftp文件传输功能
2020/03/20 Python
解决python使用list()时总是报错的问题
2020/05/05 Python
python/golang实现循环链表的示例代码
2020/09/14 Python
python 使用tkinter+you-get实现视频下载器
2020/11/17 Python
Python实现王者荣耀自动刷金币的完整步骤
2021/01/22 Python
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
2014/06/23 HTML / CSS
感恩节活动方案
2014/01/27 职场文书
工作建议书范文
2014/05/13 职场文书
2014领导班子专题民主生活会对照检查材料思想汇报
2014/09/23 职场文书
离职感谢信怎么写
2015/01/22 职场文书
2015年煤矿安全工作总结
2015/05/23 职场文书
一次MySQL启动导致的事故实战记录
2021/09/15 MySQL
React自定义hook的方法
2022/06/25 Javascript