2014-01-16 7 views
0

나는보기가web2py 및 열 앨리어싱

{{extend 'layout.html'}} 
<table class="table"> 
    {{for row in rows:}} 
    <tr> 
     <td>={{row.first_name}</td> 
    </tr> 
</table> 

있다

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)] 
    ) 

이 같은 컨트롤러에서 쿼리 (많은 열이 주석 처리)를 가지고 있고 그것을 잘 작동합니다. 그러나 컨트롤러에서 주석 처리 된 앨리어싱을 제거하면보기가 작동하지 않습니다. 함수 인수 목록은 (self =, sqlrows =, linkto = None, upload = 없음, orderby = 없음, headers = {}, truncate = 16, columns)입니다. = [ 'f.first_name AS requester_name', 't.first_name AS 수신자 이름', '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 = {}) 분명히 열 이름이 제대로 전달되지 않습니다. 어떻게해야합니까? 이 필드 별칭 경우 행에 해당 필드에 액세스 할 때

답변

0

, 다음 별칭을 사용

{{=row.requester_name}} 

또 다른 옵션은 별칭을 사용하여 생략하는 것입니다 - 그들이 필요하다고 표시되지 않습니다. 이 경우 쿼리에 조인이 포함되므로 row.tablename.fieldname을 통해 개별 필드 값에 액세스합니다.

+0

row.tablename.fieldname이 (별칭을 사용할 때) 도움이되지 않았습니다. 이것은 인쇄 행이 표시하는 행입니다. Jayadevan

+0

OK, 컨트롤러의 반환 구문이 잘못되었습니다. 초보자). return dict (행 = 행) 여야합니다. 나는 행을 반환했다. – Jayadevan

+0

참고로 별칭을 사용하지 않는다고 가정하고'row.tablename.fieldname' 구문을 사용하여 제안했다. – Anthony