django form 渲染

Django 的Form 类

Form包含各种字段(Field),每个Field也是一个类,每个Field包含一个widget的类,用来控制html元素的展示个属性等.

Form

所有的Form都作为django.forms.Form 的子类创建

form.is_bound 返回当前表单是否已绑定数据

hidden_fields() visible_fields() 分别返回所有隐藏的列和可见的列


Widget 类

每个Field都会根据字段类型对应一个默认的类,也可以手动指定widget的值来更改默认widget类,如下

name=forms.CharField(label=‘名称‘max_length=200,widget=forms.TextInput(attrs={‘class‘:‘form-control‘}))

widget.attrs

html属性的一个字典  #{‘class‘: ‘form-control‘, ‘required‘: ‘required‘}


字段的数据

不管表单提交的是什么数据,一旦通过调用is_valid() 成功验证(is_valid() 返回True),验证后的表单数据将位于form.cleaned_data 字典中。这些数据已经为你转换好为Python 的类型。

此时,你依然可以从request.POST 中直接访问到未验证的数据,但是访问验证后的数据更好一些。

手动渲染字段

手动渲染时要加上non_field_errors这个错误信息.

{{ form.non_field_errors }}
<div class="fieldWrapper">
    {{ form.subject.errors }}
    <label for="{{ form.subject.id_for_label }}">Email subject:</label>
    {{ form.subject }}</div>

field 中有用的属性

  • {{ field.label }}
  • 字段的label,例如Email address。
  • {{ field.label_tag }}
  • 包含在HTML <label> 标签中的字段Label。它包含表单的label_suffix。例如,默认的label_suffix 是一个冒号:
    <label for="id_email">Email address:</label>
  • {{ field.id_for_label }}
  • 用于这个字段的ID(在上面的例子中是id_email)。如果你正在手工构造label,你可能想使用它代替label_tag。如果你有一些内嵌的JavaScript 并且想避免硬编码字段的ID,这也是有用的。
  • {{ field.value }}
  • 字段的值,例如[email protected]。
  • {{ field.html_name }}
  • 输入元素的name 属性中将使用的名称。它将考虑到表单的前缀。
  • {{ field.help_text }}
  • 与该字段关联的帮助文档。
  • {{ field.errors }}
  • 输出一个<ul class="errorlist">,包含这个字段的验证错误信息。你可以使用{% for error in field.errors %}自定义错误的显示。 这种情况下,循环中的每个对象只是一个包含错误信息的简单字符串。
  • {{ field.is_hidden }}
  • 如果字段是隐藏字段,则为True,否则为False。作为模板变量,它不是很有用处,但是可以用于条件测试,例如:
{% if field.is_hidden %}
{% endif %}
  • {{ field.field }}
  • 表单类中的Field 实例,通过BoundField 封装。你可以使用它来访问Field 属性,例如{% char_field.field.max_length %}。
时间: 2024-08-08 08:35:37

django form 渲染的相关文章

Django ==&gt; Form 组件

Django ==> Form 组件 目录: 1.基本使用 2.form中字段和插件 3.自定义验证规则 4.动态加载数据到form中 Action: 1.基本使用 django 中的Form组件有一下功能: 1.生成html标签 2.验证用户数据(显示错误信息) 3.html form 提交保留上次提交数据 4.初始化页面显示内容 要使用 form 类,首先需要创建这个类,方法如下: from django.forms import Form from django.forms import

17 Django Form组件

目录 一.Form 介绍 二.注册功能校验数据案例 1.普通方式手写注册功能 2. 使用Form组件实现注册功能校验数据 三.Form组件如何校验数据 四.Form组件如何渲染前端页面 方式一: 方式二: 方式三: 五.Form组件如何展示错误信息 六.Form组件 参数 七.Form组件 钩子函数 1. 局部钩子函数 2. 全局钩子函数 一.Form 介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多

Django Form表单

Django  Form 表单 在实际的生产环境中比如登录和验证的时候,我们一般都使用Jquery+ajax来判断用户的输入是否为空,假如JS被禁用的话,咱们这个认证屏障是不是就消失了呢?(虽然一般不会禁用掉但是还是存在风险) 所以我们一般做两种认证一种是前端做一遍认证,在后端做一遍认证. 首先咱们看一下下面的案例: from django.shortcuts import render # Create your views here. def user_list(request): host

django form

ModelForm的继承者有两种保存数据方式: 一:创建新的数据: f = ArticleForm(request.POST)new_article = f.save() 二:更新数据库:a = Article.objects.get(pk=1)f = ArticleForm(request.POST, instance=a)f.save() 保存时候的commit选项: f = AuthorForm(request.POST)new_author = f.save(commit=False)n

Django form模块使用心得

最近用Django 写了一个网站,现在来分享一下对Django form 的一些心得. 一,创建一个表单 创建一个Form表单有两种方式: 第一种方式是继承于forms.Form,的一个子类,通过在form中选择你需要的类型来规定表单之 中字段的类型 Java代码   class ContactForm(forms.Form): subject = forms.CharField(max_length=100) message = forms.CharField(required=False)

Django Form的基本实现机制和基本概念

基于Django1.9 Doc-Form 本文只是理清Django Form系统中的关键概念和关键流程,没有关注其中的细节实现, 目的是对Djano的Form实现机制能有一个直观的了解,能够从从整体上把握它. 如果想深入了解代码实现及各种技术细节,可以阅读Django官方文档. 1 为什么要使用Django Form? 什么情况下要使用Django Form? Unless you’re planning to build websites and applications that do no

【python】-- Django Form

Django  Form Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容(自定义样式) 一.Form 简单示例: 1.view中创建Form类并进行函数处理 class FM(forms.Form): user = fields.CharField() pwd = fields.CharField() email = fields.EmailField() def fm(request):

6月28日 Django form表单

Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确.如果用户输入的内容有错误就需要在页面上相应的位置显示对应的错误信息.. Django form组件就实现了上面所述的功能. 总结一下,其实form组件的主要功能如下: 生成页面可用的HTML标签 对用户提交的数据进行校验 保留上次输入内容 普通的登录 views.p

Django Form和ModelForm组件

Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确.如果用户输入的内容有错误就需要在页面上相应的位置显示对应的错误信息.. Django form组件就实现了上面所述的功能. 总结一下,其实form组件的主要功能如下: 生成页面可用的HTML标签 对用户提交的数据进行校验 保留上次输入内容 普通方式手写注册功能 vi