目前,我正在使用HTML表格在数据库中显示所选数据。
default.py:
def show():
post = db.games(request.args(0))
reviewRows = db(db.reviews.game_id == request.args(0)).select()
return locals()
show.html
{{extend 'layout.html'}}
<h2>{{=post.title}}</h2>
<i>Desc: {{=post.description}}</i>
<h2>Reviews:</h2>
<table class="table">
<tr>
<th>Review title</th>
<th>Review</th>
</tr>
{{for row in reviewRows:}}
<tr>
<td>{{=row.title}}</td>
<td>{{=row.review}}</td>
</tr>
{{pass}}
</table>
但是我想使用SQL.grid以便我可以排序&amp;搜索表格。
我试过了
reviewRows = SQLFORM.grid(db.reviews.game_id == request.args(0)).select()
但这只是将我链接回索引页面。我假设它是因为它没有正确地接受论证?
default.py:
def index():
gridHome = SQLFORM.grid(db.games, editable=False, create=False, csv=False, deletable=False, details=False, links = [lambda row: A('View Post',_href=URL("default","show",args=[row.id])), lambda row: A('Review',_href=URL("default","review",args=[row.id]))])
return locals()
答案 0 :(得分:1)
SQLFORM.grid
使用URL args构建自己的URL,因此如果网格操作的基本URL已经使用了一个或多个URL args,则必须通过args
参数指定:
reviewRows = SQLFORM.grid(db.reviews.game_id == request.args(0), args=request.args[:1])
上面告诉网格,在添加任何自己的URL参数之前,它构造的所有内部URL都应该包含request.args[:1]
作为URL arg。
另请注意,您不应该像示例代码中那样将.select()
添加到SQLFORM.grid
。