【问题标题】:Setting the default of a database Field to the value of another field in web2py将数据库字段的默认值设置为 web2py 中另一个字段的值
【发布时间】:2013-04-30 00:06:09
【问题描述】:
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

【问题讨论】:

    标签: python web2py


    【解决方案1】:

    如果插入总是通过表单提交完成,您可以这样做:

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

    另一种选择是使其成为计算域:

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

    但是,默认情况下,计算字段不会显示在使用SQLFORM 创建的表单中,因此如果您想在更新表单中显示该字段,则必须明确指定要在表单上显示的字段或临时设置该字段的“计算”属性为无。

    【讨论】:

    猜你喜欢
    • 2021-06-22
    • 2018-02-07
    • 1970-01-01
    • 2014-05-29
    • 1970-01-01
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多