我声明了一个表,并virtual field在我的模型如下:(我试过两个注释掉的声明,以及和他们不工作)web2py的观点看不到懒惰的虚拟现场
scan_db.define_table('Shows',
Field('Name', unique=True),
Field('Logo', 'upload'),
Field('Delim', default='$'),
format= '%(Name)s')
#scan_db.Shows.src = Field.Virtual(lambda row : URL('download', args=row.Logo))
#scan_db.Shows.src = Field.Lazy(lambda row, alt=None : URL('download', args=row.Logo))
scan_db.Shows.src = Field.Lazy(lambda row, alt=None : URL('download', args=row.Logo if alt==None else alt))
在我的控制器,我已经下面的函数和我修改download():
所以它从scan_db
抓斗(download()
与显示从scan_db
图像分别进行测试和它的工作原理。)
def showlist():
shows = scan_db(scan_db.Shows).select()
return dict(shows=shows)
我认为,我有:
{{for rec in shows:}}
{{=rec.src()}}
我得到的错误:<type 'exceptions.AttributeError'> 'Row' object has no attribute 'Logo'
如果我改变{{=rec.src()}}
到{{=rec}}
然后显示这些列表:
<Row {'Name': 'PolarBear', 'Delim': '$', 'Logo': 'Shows.Logo.a1ef7016cfa89d1e.506f6c61722d437261702e706e67.png', 'id': 1L}>
看起来Shows.src
永远不会在获取添加我的模型。 ...?
视图中的代码并非用于显示实际图像。我拿出来试图缩小实际问题的范围。我原本打算使用下面这行来使用图片。
<Button type="button" src="{{=rec.src()}}" onclick='window.location="{{=URL('showscans', args=rec.id}}";'>
完全忘记提及我从文档中获得了错误的语法。我在哪里正确报告或解决这个问题?这里的例子:http://www.web2py.com/books/default/chapter/35/06/the-database-abstraction-layer#New_style_virtual_fields_%28experimental%29有>>> >>> db.item.total_price = Field。 Lazy(lambda row,discount = 0.0:row.unit_price * row.quantity *(1.0-discount/100))' – 2014-09-03 02:06:05
不幸的是,该书的该版本有时会出现在搜索结果中。这是一个不完整的中文翻译,是当前英文版本的一个版本。您应该使用http://web2py.com/book,它显示此案例的正确语法。 – Anthony 2014-09-03 04:03:01
Gah !!!我打印了所有东西,然后绑定它......用手 – 2014-09-03 04:04:23