【发布时间】:2012-09-10 14:18:09
【问题描述】:
我正在使用 wtforms,我需要创建一个可以根据数据库中的信息生成表单定义的东西;动态表单创建。我对需要做的事情有所了解,而我才刚刚开始。我可以创建表单并将它们与 wtforms/flask 一起使用,但根据表单之间略有不同的数据定义表单目前超出了我目前的技能水平。
有没有人做过这个并且有一些意见可以提供?有点模糊的问题,还没有实际的代码。我没有找到任何例子,但也不是不可能。
mass of variable data to be used in a form --> wtforms ---> form on webpage
编辑:
因此,我们可以使用“例如”调查。一项调查由几个 SQLAlcehmy 模型组成。调查是具有任意数量的相关问题模型的模型(问题属于调查,例如多项选择题会变得复杂)。为了简化,让我们使用简单的 json/dict 伪代码:
{survey:"Number One",
questions:{
question:{type:truefalse, field:"Is this true or false"},
question:{type:truefalse, field:"Is this true or false"},
question:{type:text, field:"Place your X here"}
}
}
{survey:"Number Two",
questions:{
question:{type:text, field:"Answer the question"},
question:{type:truefalse, field:"Is this true or false"},
question:{type:text, field:"Place your email address here"}
}
}
想象一下,数百个不同长度的字段类型超过 5 种。如何使用 WTForms 来管理表单,或者我什至需要使用 wtforms?我可以根据需要定义静态表单,但还不能动态定义。
顺便说一句,我在带有 simpleform 的 rails 中做过类似的事情,但是当我在 Python atm 中工作时(在不同的事情上,我以调查为例,但问题/字段/答案的事情我需要的多种输入类型的摘要)。
所以是的,我可能需要建造某种工厂,这样做会花费我一些时间,例如:
http://wtforms.simplecodes.com/docs/1.0.2/specific_problems.html
https://groups.google.com/forum/?fromgroups=#!topic/wtforms/cJl3aqzZieA
【问题讨论】:
-
您可以查看 wtforms 附带的扩展。例如。 SQLAlchemy 扩展可以从模型bitbucket.org/simplecodes/wtforms/src/113994790508/wtforms/ext/… 生成一个表单你的问题有点含糊。你能举一个实际的例子吗?什么时候什么时候表格中的某些东西必须改变?
-
它是一系列模型,其他模型属于它们....一个事物调查有任意数量的问题,每个问题都有任意数量的答案空间;即用户生成的调查格式的问题/答案表格。
-
好的,我相信我在上面发布的链接中的 model_form 方法就是您要找的。它动态地从给定模型生成表单。另外,Flask-Admin 是一个很好的例子,你可以使用它来实际呈现表单github.com/mrjoes/flask-admin/blob/master/flask_admin/templates/…
-
第一个链接有点沿着路径...我需要从类实例和属于该特定实例的类实例创建一个表单(例如,调查实例的表单具有 10 个 t/f 问题的类与具有 100 个文本字段输入问题的调查类实例的表单),这似乎不适合实例,除非我需要为每个调查类构建某种动态的子类,嗯跨度>
-
如果您觉得这“目前超出了您的技能范围”,也许您可以提出一个问题,让您在您的技能范围内找到正确的方向?也许如何使用 wtform 创建和使用动态生成的表单(列表/字典中只有垃圾数据)?一旦您对此感到满意,您就可以将数据库用作数据源。