func.count()呼び出しの値を出力しようとしていますが、makoテンプレート内に入ると、その名前がわかりません。デバッガー行で変数をpprintしてdictしようとしましたが、オブジェクトとして返されるため、ここからどこに進むべきかわかりません。
実行しているビューのコードは次のとおりです。
TodayList = DBSession.query(
func.count(ExtendedCDR.uniqueid),ExtendedCDR,ExtensionMap)
.filter(or_(
ExtensionMap.exten == ExtendedCDR.extension,
ExtensionMap.prev_exten == ExtendedCDR.extension))
.filter(ExtendedCDR.start > func.curdate())
.group_by(ExtendedCDR.extension)
.order_by(func.count(ExtendedCDR.uniqueid).desc())
.all()
このコードを実行すると、SQLクエリのデバッグは次のようになります。
2012-11-09 19:16:10,392 INFO [sqlalchemy.engine.base.Engine][Dummy-3] SELECT count(cdr_extended.uniqueid) AS count_1, cdr_extended.uniqueid AS cdr_extended_uniqueid, cdr_extended.start AS cdr_extended_start, cdr_extended.end AS cdr_extended_end, cdr_extended.clid AS cdr_extended_clid, cdr_extended.src AS cdr_extended_src, cdr_extended.dst AS cdr_extended_dst, cdr_extended.dcontext AS cdr_extended_dcontext, cdr_extended.channel AS cdr_extended_channel, cdr_extended.dstchannel AS cdr_extended_dstchannel, cdr_extended.lastapp AS cdr_extended_lastapp, cdr_extended.lastdata AS cdr_extended_lastdata, cdr_extended.duration AS cdr_extended_duration, cdr_extended.billsec AS cdr_extended_billsec, cdr_extended.disposition AS cdr_extended_disposition, cdr_extended.amaflags AS cdr_extended_amaflags, cdr_extended.accountcode AS cdr_extended_accountcode, cdr_extended.userfield AS cdr_extended_userfield, cdr_extended.extension AS cdr_extended_extension, concat(concat(ext_map.
FName
, %s), ext_map.LName
) AS anon_1, ext_map.exten AS ext_map_exten, ext_map.FName
AS ext_map_FName
, ext_map.LName
AS ext_map_LName
, ext_map.login_name AS ext_map_login_name, ext_map.isManager
AS ext_map_isManager
, ext_map.prev_exten AS ext_map_prev_exten
FROM cdr_extended, ext_map
WHERE (ext_map.exten = cdr_extended.extension OR ext_map.prev_exten = cdr_extended.extension) AND cdr_extended.start > curdate() GROUP BY cdr_extended.extension ORDER BY count(cdr_extended.uniqueid) DESC
これが私のmakoテンプレートコードです:
% for topentry in TopToday:
${topentry.ExtensionMap.AssociateName}
${topentry.count_1}
% endfor
ただし、Makoは、$ {topentry.count_1}が存在しないという例外をスローしますが、上記のDEBUG出力が与えられたと想定されます。
そのcount_1がpython/Makoに従って名前が付けられているものを見つける方法を誰かが知っていますか?