我在一个页面上有一个SQLFORM.factory,用于(除其他外)更新表中的特定字段 . 那个领域是我制作的下拉表
Field('visibility',requires=IS_IN_SET(['everyone','subscribers','friends','nobody']))
所以SQLFORM.factory中的字段看起来是一样的 . 不同之处在于我希望SQLFORM.factory中的默认值是特定表中该字段的当前值 . 通过制作默认值 . 我对表上的所需条目进行查询,选择该字段,这将成为我的默认选项 . 第一次加载时完美 . 我在表单接受之后进行更新,并且更新在功能上有效:
if subForm.accepts(request,session,dbio=True):
if myForm.vars.visible != theDefault:
db(row).update(visibility = subForm.vars.visibility)
如果您提交页面,则所选选项不是表格中该字段的当前值,它始终是之前的值 . 如果我查看我的数据库管理员,表格更新正常但我无法获取正确的选项以选择作为我的默认值 . 如果我的默认值为'大家',然后我选择并提交'朋友',那么当提交后页面重新加载时所选择的仍然是'每个人'如果我然后选择并提交'无人',则刷新后它是'朋友' .
如果它有帮助,我将显示此SQLFORM.factory所在的视图和iFrame作为更大页面的一部分 .
1 回答
几个小时之后,这是你如何做到的(sorta hackey但它的工作原理)