Datagrid里面有一个datagrid,如何从表单中获取数据?

时间:2015-04-13 16:49:54

标签: python forms plone z3c.form

enter image description here

datagrid field内有datagrid field Collective.z3c.form.datagridfield

它从前端的角度出发。但是,当我提交表格时,收到的数据如下:

'questions': [{'choices': [], 'questionContent': u'Question 1 ', 'typeOfQ': None}]

选择是第二个数据网格,它返回作为空数组。是否有更多的问题可以包含n个选项?我对子表单或小部件知之甚少,不知道创建它们是否是一个可靠的选项。

以下是代码:

class ITableRowSchema(form.Schema):
solution = schema.Bool(
    title=u'Correct Answer?', required=False,
)
trueFalse = schema.Choice(
    title=u"True or False",
    values=[('False'),('True')],
    default=('False'),
    required=False,
)
choice = schema.Text(title=u"What are the possible   choices?",required=False)


class IQuestionSchema(form.Schema):
questionContent = schema.Text(
    title=u"What is the question?",
    required=False
)

typeOfQ = schema.Choice(
    title=u"Question Type",
    values=[('True/False'),('Multiple Choice'),('Multiple Select'),('Fill-in-the-Blank'),('Short Answer')],
    required=False
)

form.widget(choices=DataGridFieldFactory)
choices = schema.List(title=u"Choices", required=False,
    value_type=DictRow(title=u"Choice #", schema=ITableRowSchema))

class IAddContent(model.Schema):
 form.widget(questions=BlockDataGridFieldFactory)
questions = schema.List(title=u"8. Create Knowledge Quiz", required=False,
 value_type=DictRow(title=u"Questions", schema=IQuestionSchema))

更新 我发现嵌套的DGF从未真正创建过真正的行。如果你有自动附加功能,它们将是TT或AA。 extractData()中将忽略这些行。但是,如果您通过省略必填字段导致表单触发表单违规。它再次构建表并且有效。

修复:确保嵌套的DGF获得为其创建的实际行,一切都会正常工作。 我正在与: python,z3c.forms,plone

0 个答案:

没有答案