【问题标题】:Web2py display "None", and I want to display nothingWeb2py 显示“无”,我什么也不显示
【发布时间】:2022-01-11 18:11:19
【问题描述】:

如果我从我的数据库中得到一个空值,web2py 会显示“无”,我想只显示一个空格(或什么都不显示)。 注意:我不需要更改数据库值的任何内容,只需在结果显示上更改即可。

我正在使用 SQLFORM.smartgrid 并获得以下信息:

  • 第 1 列:35.75
  • 第 2 列:无
  • 第 3 列:12.65

我想显示:

  • 第 1 列:35.75
  • 栏目2:
  • 第 3 列:12.65

我该怎么做?

提前感谢您的帮助。 何塞。

【问题讨论】:

    标签: web2py


    【解决方案1】:

    您可以在表定义时设置字段的“表示”属性:

    db.define_table('mytable',
        Field('myfield', represent=lambda v, r: '' if v is None else v))
    

    或以后:

    db.mytable.myfield.represent = lambda v, r: '' if v is None else v
    

    【讨论】:

    • 我在我的 SQLFORM.smartgrid 之前使用过它并且工作得很好,它不会改变字段值,正是我想要的。非常感谢!
    【解决方案2】:

    样本

    {{= request.vars.var }} 显示无

    {{= request.vars.var 或 ''}} 解析

    【讨论】:

      【解决方案3】:

      安东尼的回答适用于普通领域。但是,如果您的字段恰好是参考字段,您可能希望这样做以利用源表的 _format 设置:

      db.define_table("thing",
          Field("owner_id", db.person,
              represent=lambda value, row:
                  "" if value is None
                  else db.person._format % value,  # Here we assume db.person._format
                                                   # is a string rather than a lambda, though
              ),
          ...
      

      【讨论】:

        【解决方案4】:

        对于参考字段,示例解决方案是:

        ...
        Field('licenciador_fk', 'reference entidade', represent=lambda v, r: '-' if v is None else v.name)
        

        其中name是entidade表的字段格式

        【讨论】:

        • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-07-26
        • 1970-01-01
        • 1970-01-01
        • 2011-12-21
        • 2020-10-21
        • 1970-01-01
        • 2017-09-04
        相关资源
        最近更新 更多