django-form
2016-12-07 14:08:45 0 举报
AI智能生成
django表单
作者其他创作
大纲/内容
django.forms.ModelForm
功能不全,可定制不强,不建议使用
django.forms.Form
字段类型
CharField,IntegerField
字段定义方式
静态属性
意味着刷新页面不会重新执行
对象属性
会动态改变值的字段可以定义在__init__方法中:
1.要先执行父类的__init__
2.self.fields['xxx'].widget.choices=从文件或数据库动态获取值
1.要先执行父类的__init__
2.self.fields['xxx'].widget.choices=从文件或数据库动态获取值
字段参数
errror_msgs(错误提示字典)
{'required': '','min_length': '','max_length': ''}
max_length
min_length
validators
[mobile_validator, email_validator, ]
widget(用于定义特殊的表单控件,或者给控件加属性,
默认是input标签)
默认是input标签)
forms.widgets.Select(
choices=[(,),],
attrs={}
)
choices=[(,),],
attrs={}
)
required
表单验证(Form实例化时传入request.POST)
form_obj.is_valid()
form_obj.clean()
form_obj.errors(key为字段名的字典)
.as_data()
.as_ul()
.as_json()
用于ajax
模板变量
传入Fom的实例form_obj
传入错误信息form_obj.errors
功能
生成表单html
验证用户输入
扩展模板
register=django.template.Library()
register=django.template.Library()
@register.simple_tag
能接收多个位置参数
返回一段html,
但其中的html标签不会被自动解析
但其中的html标签不会被自动解析
django.utils.html.format_html()
在模板中引入{% load my_tag %}
使用方式{% my_tag 1 2 3 4 %}
使用方式{% my_tag 1 2 3 4 %}
@register.filter
只能接收两个位置参数:
第一个为变量值,第二个为选项
第一个为变量值,第二个为选项
使用方式跟simple_tag一样
还可以结合if使用:
{% if var|my_filter:'4,0' %}
{% if var|my_filter:'4,0' %}
0 条评论
下一页