2009-05-01 10 views
0

A Genshi Vorlage wirft folgende Fehler:Was verursacht diesen Genshi's Template Syntax Error?

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

Der Teil der Vorlage Code, der Fehler die folgenden spezifiziert ist (‚Futtermittel‘ eine Liste von Wörterbuch ist, die mit der Vorlage übergeben wird):

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

Grundsätzlich hält item.error entweder ein '0' oder ein '1' und ich möchte die Ausgabe auf dieser Grundlage. Ich bin nicht sicher, wo der Fehler ist - jede Hilfe wird geschätzt. Vielen Dank.

Antwort

0

Ich habe nie Genshi verwendet, aber basierend auf der Dokumentation, die ich gefunden habe, sieht es so aus, als ob Sie versuchen, die Inline-Python-Ausdruckssyntax innerhalb eines Templates-Arguments zu verwenden, das unnötig zu sein scheint. Versuchen Sie stattdessen:

<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

Danke, Jorenko. Ich erkannte den Fehler selbst und änderte es. Aber es hat immer noch nicht funktioniert. Ich habe mich entschieden, stattdessen zwei zu verwenden, und das hat funktioniert. – Sam

4

Die docs vielleicht nicht so klar machen, aber das Attribut muss test aufgerufen werden (wie es in den Beispielen) statt 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> 
Verwandte Themen