我聲明瞭一個表,並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