我正在尝试使用SQLFORM.grid()
一切正常但我尝试向其中添加新的field
。我的查询由连接在一起的两个表组成。例如:
db.define_table('table1',
Field('total','integer')
)
db.define_table('table2',
Field('table1_id','integer'),
Field('count','integer'),
)
query = (db.table1.id == db.table2.table1_id)
grid = SQLFORM.grid(query,fields=[
db.table1.total,
db.table2.count,
(db.table1.total - db.table2.count) #this doesn't work
])
那么是否可以添加一个通过数学函数生成的列,或者在这种情况下不一定需要但是两个值连接在一起?
答案 0 :(得分:5)
您可以使用"链接"参数:
grid = SQLFORM.grid(query, fields=[db.table1.total, db.table2.count],
links=[dict(header='Total - Count',
body=lambda r: r.table1.total - r.table2.count)])
默认情况下,所有"链接"列出现在右侧。你可以通过设置" links_placement"来改变它。参与"左"或者"两个"。