1.使用form:

  django的form提供了统一的结构化的后台验证机制,错误信息,也容易展现在前台界面上。由于python的面向对象,使得编写html也能够代码复用。

  a.多个field 综合验证,需要重写clean 程序

def clean(self):
"""Checks that no two articles have the same title."""
  if any(self.errors):
  # Don’t bother validating the formset unless each form is valid on its own
    return
  titles = []
  for form in self.forms:
    title = form.cleaned_data[’title’]
  if title in titles:
    raise forms.ValidationError("Articles in a set must have distinct titles.")
  titles.append(title)

  b.template中form 的要素:

     form :

{{form.as_p}}, {{form.as_table}} ,{{form.as_url}}

      {{form.hidden_fields}} 隐藏的字段

      {{form.visible_fields}} 显示的字段

          {{form.media}}: 样式与js定义文件

      {{form.non_field_errors}}:非字段相关的错误

    字段 a:{{form.a}}

      字段样式定制,在python中:这种方式适合继承,比如有好几个页面都需要使用该form,这种方式适合。

domain_name=forms.CharField(widget=TextInput(attrs={"class":"form-control","size":"","placeholder":"输入您要加速的域名。如:image.a.com"}))

      或者在html中

<input class="form-control" size="16" name="{{ form.domain_name.html_name }}" type="text" value="" placeholder="输入您要加速的域名。如:image.a.com">

      字段的属性

        {{form.a.label}} 标签名字

        {{form.a.label_tag}} 标签的html tag形式

        {{form.a.value}} 值

        {{form.a.html_name}} input 的name

        {{form.a.help_text}} input 的帮助

        {{form.a.errors}} input 的错误

        {{form.a.is_hidden}} input 是否隐藏

        {{form.a.field}} a字段的各个属性字典   

2.widget:定制化form的字段的表现形式。

class CalendarWidget(forms.TextInput):
class Media:
css = {
’all’: (’pretty.css’,)
}
js = (’animations.js’, ’actions.js’) class CalendarWidget(forms.TextInput):
def _media(self):
return forms.Media(css={’all’: (’pretty.css’,)},js=(’animations.js’, ’actions.js’))
media = property(_media)

      

     

  

django 高级的更多相关文章

  1. Django高级部分

    Django高级部分 1.上传图片: 当Django在处理文件上传的时候,文件数据被保存在request.FILES,FILES中的每个键为<input type="file" ...

  2. Django高级实战 开发企业级问答网站完整

    资源获取链接点击这里 Django高级实战 开发企业级问答网站 从实际需求分析开始,实现当今主流知识问答应用的功能,包括动态.文章.问答.私信.消息通知.搜索.个人中心,打造企业级知识问答网站,由此全 ...

  3. django高级应用(分页功能)

    django高级应用(分页功能) 1.原生分页应用 前端html代码 <!DOCTYPE html> <html lang="en"> <head&g ...

  4. Django高级实战 开发企业级问答网站 ✌✌

    Django高级实战 开发企业级问答网站 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 从实际需求分析开始,实现当今主流知识问答应用的功能,包括动态.文章.问 ...

  5. Django高级实战 开发企业级问答网站✍✍✍

    Django高级实战 开发企业级问答网站 1. 创建项目与app 创建项目 django-admin startproject firstsite 创建app python manage.py sta ...

  6. Django高级实战 开发企业级问答网站

    Django高级实战 开发企业级问答网站 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大家看的 ...

  7. [Django高级之批量插入数据、分页器组件]

    [Django高级之批量插入数据.分页器组件] 批量插入数据 模板层models.py from django.db import models class Books(models.Model): ...

  8. [Django高级之forms组件]

    [Django高级之forms组件] forms组件之校验字段 # 第一步:定义一个类,继承forms.Form # 第二步:在类中写字段,要校验的字段,字段属性就是校验规则 # 第三步:实例化得到一 ...

  9. [Django高级之中间件、csrf跨站请求伪造]

    [Django高级之中间件.csrf跨站请求伪造] Django中间件 什么是中间件? Middleware is a framework of hooks into Django's request ...

  10. [Django高级之Auth模块]

    [Django高级之Auth模块] auth模块 ←详情点击查看 1.Auth模块是什么 Auth模块是Django自带的用户认证模块: 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统 ...

随机推荐

  1. 33. Pay Gap for the Brightest Female Graduatea 最聪明的大学女毕业生面临的工资差距

    33. Pay Gap for the Brightest Female Graduatea 最聪明的大学女毕业生面临的工资差距 ① When young women were found to ma ...

  2. 20. Dog,Man's Best Friend 狗,人类最好的朋友

    . Dog,Man's Best Friend 狗,人类最好的朋友 ①The dogs has always been considered man's best friend.Always note ...

  3. Django入门与实践-第11章:URL 分发(完结)

    http://127.0.0.1:8000http://127.0.0.1:8000/boards/1/http://127.0.0.1:8000/boards/2/http://127.0.0.1: ...

  4. UVa 11039 Building designing (贪心+排序+模拟)

    题意:给定n个非0绝对值不相同的数,让他们排成一列,符号交替但绝对值递增,求最长的序列长度. 析:我个去简单啊,也就是个水题.首先先把他们的绝对值按递增的顺序排序,然后呢,挨着扫一遍,只有符号不同才计 ...

  5. svn 创建tag

    1. 右键项目(源) 2. 选择复制到哪个路径(创建文件夹选项) 3. 选择哪个版本(源的) 4. 填写备注 5. 结束 使用:import  .合并等

  6. 仿iPhone滑屏操作

    <!DOCTYPE html> <html> <head>     <meta charset="utf-8">     <m ...

  7. Java 连接 Memcached 服务

    原文:http://www.runoob.com/memcached/java-memcached.html mac下安装和配置Memcached:http://www.pchou.info/open ...

  8. HDU2976 Dropping tests 2017-05-11 18:10 39人阅读 评论(0) 收藏

    Dropping tests Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 12187   Accepted: 4257 D ...

  9. mysql insert 事务相关(草稿)

    当 insert 多条语句时初步试了一下是自带事务机制的,如在一个这样的表中: 执行语句 INSERT INTO `t_mytest`(`id`) VALUES (1),(2),(3),(4),(5) ...

  10. hdu 5040 bfs

    http://acm.hdu.edu.cn/showproblem.php?pid=5040 一个人拿着纸盒子往目的地走  正常情况下一秒走一格  可以原地不动躲在盒子里  也可以套着盒子三秒走一格 ...