web2py的新手,想知道如何从数据库中获取要显示的超链接。我有一个页面,它有一个函数从'产品'数据库生成所有项目,使用for循环列出每个产品的名称和成本。但我希望每个产品的名称都是一个超链接,然后显示项目本身的所有信息(描述,重量,实际成本)...已经绞尽脑汁几个小时,无法找到任何地方这是怎么回事可能......任何帮助都将不胜感激。
答案 0 :(得分:0)
假设您的控制器名为products.py
,在您的控制器中您可以使用以下内容:
def index():
products = db(db.product).select()
return dict(products=products)
def view():
product_id = request.args(0, cast=int, otherwise=lambda: None)
product = db(db.product.id == product_id).select().first()
if product is None:
raise HTTP(404, 'Cannot find that product')
return dict(product=product)
在您的products / index.html视图中,您将拥有以下代码:
<ul class="products">
{{for product in products:}}
<li>{{=A(product.name,
_href=URL('products','view', args=[product.id]))}}
</li>
{{pass}}
</ul>
您可能还想查看SQLFORM.grid,这是实现此目标的另一种方式,具体取决于您的目标。