这个ZPT模板出了什么问题?

时间:2012-04-17 22:08:48

标签: python chameleon template-tal

我正在开发的Python网站中使用Chameleon。这是一段代码:

<option tal:repeat="option options"
        value="${option.isoformat()}"
        selected="${if request.get_param('%s%d%s' %(day, row, type))==option.isoformat(): 'selected'}">
    ${int(option.strftime('%I'))}${option.strftime(':%M%p')}
</option>

但由于某种原因,我总是遇到语法错误:

ExpressionError: invalid syntax

- String:   "if request.get_param('%s%d%s' %(day, row, type))==option.isoformat(): 'selected'"
- Filename: /Users/theron/Sites/python/restaurateur/views/settings/hours.pt

我看不出我做错了什么。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

好吧,我想我弄清楚了:它是无效的,因为没有else语句,所以当if语句求值为false时没有输出。我用以下内容修复了它:

<option tal:repeat="option options"
        value="${option.isoformat()}"
        tal:attributes="selected 'selected' if request.get_param('%s%d%s' %(day, row,
        type))==option.isoformat() else None">
    ${int(option.strftime('%I'))}${option.strftime(':%M%p')}
</option>