2009-05-01 3 views
0

Genshi шаблон возникает следующее сообщение об ошибке:Что вызывает ошибку синтаксиса шаблона Genshi?

TemplateSyntaxError: invalid syntax in expression "${item.error}" of "choose" directive

часть кода шаблона, что ошибка указывает следующий («подачи» является список словаря, который передается в шаблон):

<item py:for="item in feed"> 
<py:choose error="${item.error}"> 
    <py:when error="0"> 
     <title>${item.something}</title> 
    </py:when> 
    <py:otherwise> 
     <title>${item.something}</title> 
    </py:otherwise> 
</py:choose> 
</item> 

в принципе, item.error держит либо '0' или '1', и я хочу, вывод, основанный на этом. Я не уверен, где ошибка - любая помощь приветствуется. Благодарю.

ответ

0

Я никогда не использовал Genshi, но, основываясь на документации, которую я нашел, похоже, вы пытаетесь использовать синтаксис встроенного синтаксиса Python внутри аргумента директив шаблонов, что кажется ненужным. Попробуйте вместо этого:

<item py:for="item in feed"> 
<py:choose error="item.error"> 
    <py:when error="0"> 
     <title>${item.something}</title> 
    </py:when> 
    <py:otherwise> 
     <title>${item.something}</title> 
    </py:otherwise> 
</py:choose> 
</item> 
+0

Спасибо, Йоренко. Я сам осознал ошибку и изменил ее. Но это все еще не сработало. Я решил использовать вместо них два, и это сработало. – Sam

4

docs, возможно, не делают это ясно, но атрибут должен быть назван test (как это в их примерах) вместо error.

<item py:for="item in feed"> 
<py:choose test="item.error"> 
    <py:when test="0"> 
     <title>${item.something}</title> 
    </py:when> 
    <py:otherwise> 
     <title>${item.something}</title> 
    </py:otherwise> 
</py:choose> 
</item> 

 Смежные вопросы

  • Нет связанных вопросов^_^