数据库字段的默认设置为另一个字段的值的web2py(Setting the default of a

2019-09-01 09:25发布

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_numberstart_number

Answer 1:

如果刀片将始终通过表单提交来完成,你可以这样做:

Field('current_number', 'double', default=request.post_vars.start_number, ...)

另一种选择是让一个计算字段:

Field('current_number', 'double', compute=lambda r: r.start_number, ...)

然而,在默认情况下,计算字段不能与创建的表单显示SQLFORM ,所以如果你想在一个更新的形式显示的字段,你必须明确指定的字段显示在表格上或临时设置字段的“计算”归因于无。



文章来源: Setting the default of a database Field to the value of another field in web2py
标签: python web2py