如何打印单行记录

时间:2014-05-14 13:55:30

标签: web2py

我在web2py中有代码。我想打印出单行记录,但我得到的只是所有行。 这是代码:

def view_post:
    form = SQLFORM(db.post.name)
    for rows in db.select(db.post.name)
    return dict()

查看帖子:

{{extend 'layout.html'}}

{{=form}}

我得到的是:

post.name 名字1 2. name2 3. name3等

我想要一种方法来挑选例如: post.name 2.name2

2 个答案:

答案 0 :(得分:0)

您发布的代码应引发异常。首先,您无法在.select()对象上调用db方法。其次,将空字典返回到视图,但随后引用视图中的form对象(在视图环境中不存在)。

如果要显示给定记录的只读形式,可以执行以下操作:

def view_post:
    post = SQLFORM(db.post, record=request.args(0), readonly=True)
    return dict(post=post)

在视图中:

{{=post}}

上面的代码假定您将记录ID作为控制器和函数之后的URL的第一部分(即第一个URL arg,存储在request.args(0)中)传递。您可以添加一些错误检查,以确保记录存在。

答案 1 :(得分:0)

如果要显示查询结果的一条记录,可以使用SQLFOM.grid

    def view_post:
        form = SQLFORM.grid( query = db.post.id==10 )
        return dict( form=form )

您可以将10替换为您想要的任何内容,或更改查询。如果您想查看更复杂的示例,请查看Web2py切片http://www.web2pyslices.com/slice/show/1471/sqlformgrid