【问题标题】:representation format in web2py databaseweb2py 数据库中的表示格式
【发布时间】:2012-02-03 10:01:36
【问题描述】:

db.define_table('person', Field('name'), format='%(name)s')

这种格式在这里有什么作用?

【问题讨论】:

    标签: format web2py representation


    【解决方案1】:

    format 参数用于确定引用“person”表的其他表中的字段将如何显示。例如,如果您定义:

    db.define_table('dog',
        Field('name'),
        Field('owner', db.person)
    

    “所有者”字段是引用“人员”表的引用字段(即,它存储“人员”表中记录的记录 ID)。在大多数情况下,当您显示“狗”表中的数据时,您不想显示存储在“所有者”字段中的原始 db.person 记录 ID,因为这没有任何意义——相反,显示此人的“姓名”更有意义。在 web2py 中,表格的 format 属性可以在表格和表格中自动替换。

    当你基于'dog'表创建SQLFORM时,它会自动为'owner'字段生成一个下拉列表,并且由于'person'表定义的format='%(name)s'参数,drop -down 列表将显示 db.person 名称而不是记录 ID(即使在提交表单时,“所有者”字段将存储关联的记录 ID 而不是名称)。

    此外,如果您在 SQLTABLE 或 SQLFORM.grid 中显示“狗”表中的记录,“所有者”字段将显示所有者的姓名而不是所有者的记录 ID。

    http://web2py.com/books/default/chapter/29/6#Record-representation

    【讨论】:

    • 谢谢。我在这里不明白的是这个符号 % 和参数末尾的 s 是什么意思
    • 这只是标准的Python string formatting notationformat 字符串可以包含表中任何字段的名称。
    • 顺便问一下,如何在服务器端获取已经登录我网站的用户的用户名?谢谢
    • 我想通了。使用 session.auth.user.username 对吧?
    • 是的,不过您也可以从auth.user.username 获得。
    猜你喜欢
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-28
    • 2015-12-23
    • 2013-07-03
    • 1970-01-01
    • 2018-02-06
    • 2020-11-17
    相关资源
    最近更新 更多