Django之利用type构造自定义Form组件
来源:互联网 发布:二级access题库软件 编辑:程序博客网 时间:2024/06/06 21:17
backend codes:
def func(val): """ 校验输入文本长度 :param val: validators传入待校验的值 :return: """ if len(val) < 15: raise ValidationError('内容必须大于15字!')================================================ # 在当前页面展示所有问题questions = models.Question.objects.filter(questionnaire__id=qid)# 利用type构造一个Form组件类field_dict = {}for quiz in questions: for quiz_type in quiz.type.all(): if quiz_type.name == '评分': field_dict['%s' % quiz.id] = fields.ChoiceField( label=quiz.name, error_messages={'required': '必填项'}, widget=widgets.RadioSelect, choices=[(i, i) for i in range(1, 11)] ) elif quiz_type.name == '单选': field_dict['%s' % quiz.id] = fields.ChoiceField( label=quiz.name, error_messages={'required': '必填项'}, widget=widgets.RadioSelect, choices=models.TypeContent.objects.values_list('id', 'name') ) else: field_dict['%s' % quiz.id] = fields.CharField( label=quiz.name, error_messages={'required': '必填项', 'invalid': '不能少于15个字'}, widget=widgets.Textarea(), validators=(func,) )form = type('TypeForm', (Form,), field_dict)
frontend codes:
<form action="" novalidate method="post"> {% csrf_token %} {% for fm in form %} <div> <p>{{ fm.label }}{{ fm.errors.0 }}</p> {{ fm }} </div> {% endfor %} <input type="submit" value="提交"></form>
这种可以循环创建form组件字段的形式,前端可以循环取label等!
阅读全文
0 0
- Django之利用type构造自定义Form组件
- Django之Form组件
- Python3 之 Django Web框架Form组件(二)
- Django之Form组件校验de几种方式
- Django Form 自定义字段错误信息
- Android-构造自定义组件
- Python3 之 Django Web框架优化查询和Form组件(一)
- Django之ModelForm组件
- django中form的自定义校验
- Django forms.Form自定义方法注意事项
- 自定义组件之-利用已经用的组件进行二次的组件开发
- 微信小程序----组件之form
- 利用Ext.XTemplate自定义组件
- Django框架学习笔记(25.Form组件验证)
- Django Form之动态数据初始化
- 如何利用Info Path自定义Form表单?
- Django Form
- django form
- 使用opencv实现单反的慢速拍照功能
- keepalived双主多实例
- Java语言历史
- PAT 1034. 有理数四则运算(20)
- 对《程序员的自我修养》(龙书)读后思考
- Django之利用type构造自定义Form组件
- Android Base64编码
- HDU1023 Train Problem II【卡特兰数+大数+亿进制+打表】
- java多线程的使用
- spark 环境搭建
- LTE x-RNTI (2)
- 程序猿(媛)编码10 倍效率的三件事
- 基于Unity3D的相机功能的实现(六)—— 上帝视角(王者荣耀视角)
- 字符编码--笔记