保存表单 Web2Py 的作者

Saving author of form Web2Py

如何保存和显示提交保存在数据库中的表单的用户的姓名。

例如:

我有一个允许用户评论产品的表格。 然后我有一个 table 列出了这些评论。 在 table 我想列出每个评论之外的每个用户名。

您可以添加一个指向 db.auth_user table(或您存储用户数据的任何 table)的引用字段:

db.define_table('review',
    ...,
    Field('reviewer', 'reference auth_user', default=auth.user_id, writable=False),
    ...)

对于上面的代码,"reviewer"字段的默认值是当前登录用户的ID。该字段不是 writable,因此用户无法更改它(在评论输入表单中,您可能还想将其 readable 属性设置为 False,因为有作者不用看)。

然后要显示评论者姓名和评论,您可以执行 join or use a recursive select(如果您一次显示许多评论,前者更有效,因为递归 select 方法需要单独的数据库查询来获取每条评论的作者)。