使用 SQLFORM.grid & request.args
Using SQLFORM.grid & request.args
目前我正在使用 HTML table.
显示数据库中的选定数据
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 以便我可以对 table.
进行排序和搜索
我试过了
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()
SQLFORM.grid
使用 URL args 来构造它自己的 URLs,所以如果网格动作的基础 URL 已经使用了一个或多个 URL 参数,您必须通过 args
参数指定:
reviewRows = SQLFORM.grid(db.reviews.game_id == request.args(0), args=request.args[:1])
上面告诉网格,它构造的所有内部 URLs 应该包括 request.args[:1]
作为 URL arg,然后再添加它自己的任何 URL args。
此外,请注意,您不应像在示例代码中那样将 .select()
添加到 SQLFORM.grid
。
目前我正在使用 HTML table.
显示数据库中的选定数据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 以便我可以对 table.
进行排序和搜索我试过了
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()
SQLFORM.grid
使用 URL args 来构造它自己的 URLs,所以如果网格动作的基础 URL 已经使用了一个或多个 URL 参数,您必须通过 args
参数指定:
reviewRows = SQLFORM.grid(db.reviews.game_id == request.args(0), args=request.args[:1])
上面告诉网格,它构造的所有内部 URLs 应该包括 request.args[:1]
作为 URL arg,然后再添加它自己的任何 URL args。
此外,请注意,您不应像在示例代码中那样将 .select()
添加到 SQLFORM.grid
。