2012-04-17 51 views
2

我在我正在开发的Python网站中使用变色龙。下面是一个代码片段:这个ZPT模板有什么问题?

<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

好吧,我想我明白了:它是无效的,因为没有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>