成都网站建设设计

将想法与焦点和您一起共享

djangoform渲染-创新互联

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 }}


    {{ form.subject.errors }}
    Email subject:
    {{ form.subject }}

field 中有用的属性

`field`.`get_XXX_display`  #xx指字段名.

当定义的字段为关系字段,选择字段,bool等等,

django会自动生成一个get_xx_display的方法来生成这些字段的展示数据.

is_end_state = models.SmallIntegerField('是否', default=0,choices=[(0,'否'),(1,'是')])

is_end_state = models.SmallIntegerField('是否', default=0,choices=[(0,'否'),(1,'是')])

当字段类型为CharField时使用get_xx_display,获取到的值为本身,

直接打印出来为0或者1,使用get_xx_display打印出来则为定义字段时的则为是/否

  • {{ field.label }}

  • 字段的label,例如Email address。

  • {{ field.label_tag }}

  • 包含在HTML 

    Email address:
  • {{ field.id_for_label }}

  • 用于这个字段的ID(在上面的例子中是id_email)。如果你正在手工构造label,你可能想使用它代替label_tag。如果你有一些内嵌的JavaScript 并且想避免硬编码字段的ID,这也是有用的。

  • {{ field.value }}

  • 字段的值,例如someone@example.com。

  • {{ field.html_name }}

  • 输入元素的name 属性中将使用的名称。它将考虑到表单的前缀。

  • {{ field.help_text }}

  • 与该字段关联的帮助文档。

  • {{ field.errors }}

  • 输出一个,包含这个字段的验证错误信息。你可以使用{% 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 %}。

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


分享文章:djangoform渲染-创新互联
转载注明:http://chengdu.cdxwcx.cn/article/jdjje.html

其他资讯