【发布时间】:2012-08-01 00:23:24
【问题描述】:
尝试在 web2py 中创建一个投票应用程序。
型号
db.define_table('t_query',
Field('f_content', type='text', requires=IS_NOT_EMPTY(),
label=T('Content')),
SQLField('is_active',db.auth_user,writable=False,readable=False),
auth.signature,
migrate=settings.migrate)
db.define_table('t_option',
Field('f_ocontent', type='string',requires=IS_NOT_EMPTY(),
label=T('Option')),
auth.signature,
migrate=settings.migrate)
控制器
def ask():
form=SQLFORM.factory(db.t_query,db.t_option,db.t_option)
if form.process().accepted:
id = db.t_query.insert(**db.t_query._filter_fields(form.vars))
form.vars.client=id
id = db.t_option.insert(**db.t_option._filter_fields(form.vars))
response.flash='Thanks for filling the form'
id = db.t_option.insert(**db.t_option._filter_fields(form.vars))
response.flash='Thanks for the question'
return dict(form=form)
查看
{{extend 'layout.html'}}
<h2>Start a Poll</h2>
{{=form}}
输出
我尝试寻找如何让 SQLFORM 在一个表单中多次使用同一个表中的字段。
这是我所期望的:
我该怎么做?
在 web2py@googlegroups https://groups.google.com/forum/#!topic/web2py/48tO5ncC2t4 上问了同样的问题
【问题讨论】:
-
顺便说一句,我看到你连续有两个
response.flash分配。每次成功处理表单时,第二个将覆盖第一个,因为没有 if 语句来确定何时发送一条闪存消息与另一个...也许现在对您的代码无关紧要,但我想指出来。