db.define_table('mytable',
Field('start_number', 'double', requires=IS_NOT_EMPTY()),
Field('current_number', 'double', default=mytable.start_number, requires=IS_NOT_EMPTY()))
当网站上发生某些事情时,current_number
可以更改为其他内容,但始终以默认值start_number
开头(即创建条目时)。每个条目都有不同的start_number
。
我一直收到一条错误消息,指出mytable
无法找到,可能是因为它还没有完全定义。是否仍然可以将current_number
的默认值设置为start_number
?
答案 0 :(得分:0)
如果总是通过表单提交进行插入,您可以这样做:
Field('current_number', 'double', default=request.post_vars.start_number, ...)
另一种选择是使其成为计算字段:
Field('current_number', 'double', compute=lambda r: r.start_number, ...)
但是,默认情况下,计算字段不会显示在使用SQLFORM
创建的表单中,因此,如果要在更新表单中显示字段,则必须明确指定要在表单上显示的字段或暂时将字段的“计算”属性设置为无。