Web2py 新手,所以我的问题可能不太清楚。我正在尝试制作货运跟踪页面,并且我有一个简单的数据库,其中包含跟踪号和托运人 ID。按照示例,我的应用程序可以显示新记录并将其添加到货件数据库。现在我想添加指向显示记录的链接,这些链接会将您带到承运人的该跟踪号的跟踪页面。跟踪页面 URL 将根据将附加跟踪号的每个发货人的默认字符串创建。如何将结果链接到相应的跟踪页面?
问问题
794 次
3 回答
2
如果您通过 SQLFORM、Crud、SQLTABLE 或 SQLFORM.grid 显示记录,您可以设置跟踪号字段的“represent”属性以显示链接:
db.define_table('shipper',
Field('name'),
Field('url'),
format='%(name)s')
db.define_table('shipment',
Field('tracking_number', represent=lambda value, row: A(value,
_href=row.shipper.url + value)),
Field('shipper', db.shipper))
这假设您将托运人 URL 存储在单独的表中。
于 2012-04-30T20:28:56.240 回答
1
我把它改成了这个,它几乎可以工作:
db.define_table('carrier',
Field('name',),
Field('url',),
format='%(name)s')
db.define_table('shipment',
Field('shipment_id', represent=lambda value,row: \
A(value, _href=(row.carrier.url + value, ))),
Field('carrier', db.carrier))
ship_id 是一个链接,但它指向 'http://127.0.0.1:8000/tracker/default/www.bing.com/search?q=trumpet',其中 'www.bing.com/search?q='和 'trumpet' 分别是 carrier.url 和 shipping.shipment_id 值(仅用于测试)。我怎样才能离开'http://127.0.0.1:8000/tracker/default/'?
于 2012-05-01T18:16:04.780 回答
0
好的,最终得到:
db.define_table('carrier',
Field('name',),
Field('url',),
format='%(name)s')
db.define_table('shipment',
Field('shipment_id', represent=lambda value,row: \
A(value, _href=row.carrier.url + value)),
Field('carrier', db.carrier))
有两个问题。首先是 href 的语法。我上面添加的答案中的版本没有报错,但是导致链接地址问题。其次,输入的 URL 没有“http://”。这导致了相同的链接地址问题。
于 2012-05-01T19:28:32.220 回答