WTForms动态表单有2种类型的字段

时间:2013-10-24 09:30:28

标签: flask wtforms flask-wtforms

我想使用WTForms创建一个包含两种类型字段的动态表单。 我有一个类CustomersQuestionFields,我想从中显示问题并将答案保存在另一个名为CustomerQuestions的类中。 这是他们的结构:

**class CustomerQuestionFields:**
id
description
label

**class CustomerQuestions:**
id
customer_question_fields_id
customer_id
value
description

我们的想法是使用文本填写CustomerQuestionFields,并将其作为CustomerQuestions上的值和描述标签。 值为RadioField,描述为TextAreaField。

我尝试过创建字典,然后成功获取字段,显示字段并保存数据,但问题是我想将一个值与一个描述相关联。

我得到的当前(排序)词典是:

[{description_1 : WTFormsTextAreaField}, {description_10: WTFormsTextAreaField}, {description_2: WTFormsTextAreaField},..., {value_1: WTFormsRadioField}, {value_10: WTFormsRadioField}, {value_2: WTFormsradioField}, ...}]

当我尝试在模板中显示时,会显示第一个描述字段,然后显示值字段。

有办法做到这一点吗?

更新 我忘了粘贴字典的代码:

 def create_question_form_class(questions):
     form_fields = []

     for q in questions:
         field_id = 'value_{}' + str(q.id)
         form_fields[field_id] = RadioField(q.description, choices = [('0', 'No'), ('1', 'Yes')], default="Select")

         field_id = 'description_'+ str(q.id)
         form_fields[field_id] = TextAreaField()

    return type('CustomerQuestions', (Form,), form_fields)

0 个答案:

没有答案