我在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
答案 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