我有这样的控制器查询(多列被注释掉)的web2py和列别名
rows=db((c.email_sent == 0) & (c.status=='pending')).select(db.f.first_name #.with_alias('requester_name') ,
# db.t.first_name.with_alias('receiver_name'),db.t.email.with_alias('sendto_email'),
# db.c.from_id.with_alias('sender_id'),db.c.to_id.with_alias('receiver_id'),
# db.c.id.with_alias('connection_id')
,join =
[db.f.on (db.f.id==c.from_id),
db.t.on(db.t.id==c.to_id)]
)
视图有
{{extend 'layout.html'}}
<table class="table">
{{for row in rows:}}
<tr>
<td>={{row.first_name}</td>
</tr>
</table>
,它工作正常。但是,如果我从控制器中删除注释掉的别名,我无法使视图正常工作。我得到一个错误 - “(在Rows对象中有错误)”
函数参数列表是(self =,sqlrows =,linkto = None,upload = None,orderby = None,headers = {},truncate = 16,列= ['f.first_name AS requester_name','t.first_name AS receiver_name','t.email AS sendto_email','c.from_id AS sender_id','c.to_id AS receiver_id','c.id AS connection_id'] ,th_link ='',extracolumns = None,selectid = None,renderstyle = False,cid = None,colgroup = False,** attributes = {}) 很明显,列名无法正确传递。这应该怎么做?
row.tablename.fieldname没有帮助(使用别名时)。这是什么打印行显示 - <行{'requester_name':u'Jayadevan','_extra':{'f.first_name AS requester_name':'Jayadevan'}}> – Jayadevan
好的,我在控制器中的返回语法是错误的一个新手)。它必须是返回字典(行=行)。我正在做返回行 – Jayadevan
请注意,我建议使用'row.tablename.fieldname'语法,假设你不*使用别名。 – Anthony