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. list集合如何对里面的元素进行排序

    Collections 是集合的公共类,提供各种工具,其中提供了排序方法. Collections.sort(),方法两个参数,1,要排序的集合,2.排序方式 下面是匿名内部类,实现了排序借口,你也可 ...

  2. 2018.09.10 bzoj1597: [Usaco2008 Mar]土地购买(斜率优化dp)

    传送门 终究还是通宵了啊... 这是一道简单的斜率优化dp. 先对所有土地排序,显然如果有严格小于的两块土地不用考虑小的一块. 于是剩下的土地有一条边单增,另外一条单减. 我们假设a[i]是单减的,b ...

  3. 2018.09.02 bzoj1296: [SCOI2009]粉刷匠(dp套dp)

    传送门 dp好题. 先推出对于每一行花费k次能最多粉刷的格子数. 然后再推前i行花费k次能最多粉刷的格子数. 代码: #include<bits/stdc++.h> #define N 5 ...

  4. k8s的port、targetport、nodeport之间的区别

    先看举例: k8s集群中跑着一个tomcat服务,tomcat容器expose的端口为8080 apiVersion: v1 kind: Service metadata: name: tomcat- ...

  5. linux上安装maven

    解压安装: tar -zxvf apache-maven-3.3.9-bin.tar.gz 配置环境变量 cd /etc/ vi profile 在最后面加上M2_HOME=/usr/local/my ...

  6. NSDictionary NSMutableDictionary NSSet NSMutableSet

    //description只是返回了一个字符串 //    [person description]; //        //如果想要打印需要NSLog //    NSLog(@"%@& ...

  7. Fig 7.2.4 & Fig 7.3.2

    Fig 7.2.4 \documentclass[varwidth=true, border=2pt]{standalone} \usepackage{tkz-euclide} \begin{docu ...

  8. MathJax $TeX$ Test Page

    MathJax TeX Test Page When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0\) and they are ...

  9. Java实现wc部分功能

    GitHub仓库:https://github.com/TaoTaoLv1/WcProject 一.开发前PSP表格预估* PSP2.1 Personal Software Process Stage ...

  10. NET平台开源项目速览(6)FluentValidation验证组件介绍与入门(转载)

    原文地址:http://www.cnblogs.com/asxinyu/p/dotnet_Opensource_project_FluentValidation_1.html 阅读目录 1.基本介绍 ...