problem mit condition...

Django, Flask, Bottle, WSGI, CGI…
Antworten
Benutzeravatar
mitch
User
Beiträge: 78
Registriert: Dienstag 1. August 2006, 09:07
Kontaktdaten:

Hi leute, ich bin ein neuling im Bereich mit Plone(Zope) und Python und arbeite gerade das Plonebuch durch.
Da bin ich bei den Tamplates auf die conditions gestoßen und da heißt es z.B.

Code: Alles auswählen

 
<p tal:condition="request/message">
    Es gibt eine Message
</p>
<p tal:condition="not: request/message">
    Keine Message
</p>
aber wenn ich das im Plone so testen will, kommt als Fehler immer "Fehlerhafterwert: 'message'"
Es ist doch so, dass beim ersten der Text angezeigt werden sollte und beim 2. nicht oder?
Was mache ich Falsch?
Hier mal der ganze Quellcode:

Code: Alles auswählen

 
<html>
  <head>
    <title tal:content="template/title">The title</title>
  </head>
  <body>
    
<p tal:condition="request/message">
    Es gibt eine Message
</p>
<p tal:condition="not: request/message">
    Keine Message
</p>

    
</body>
</html>
[/quote]
Benutzeravatar
mitch
User
Beiträge: 78
Registriert: Dienstag 1. August 2006, 09:07
Kontaktdaten:

ich habs jetzt einfach mal so gelöst aber na ja ich glaube nicht, dass das der richtige Weg ist!

Code: Alles auswählen

<html>
  <head>
    <title tal:content="template/title">The title</title>
  </head>
  <body>
    
<p tal:condition="string:message">
    Es gibt eine Message
</p>
<p tal:condition="not: string:message">
    Keine Message
</p>

    
</body>
</html>
Oh man und noch das gleiche mit content:

Code: Alles auswählen

<html>
  <head>
    <title tal:content="template/title">The title</title>
  </head>
  <body>

    <i tal:content="here/title_or_id">Ein Titel</i>
    
</body>
</html>
Ich befinde mich im custom Ordner (Container) also ist die title_or_id ja logischer weiße "Custom" aber mit der content Anweisung sollte ich ja dies überschreiben können und es müsste "Ein Titel" da stehen oder? Dem ist aber nicht so!
Kann mir einer sagen woran das liegt? muss ich noch irgendwas in Zope einstellen?

mfg mitch[/quote]
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

mitch hat geschrieben:Da bin ich bei den Tamplates auf die conditions gestoßen und da heißt es z.B.

Code: Alles auswählen

<p tal:condition="request/message">
    Es gibt eine Message
</p>
<p tal:condition="not: request/message">
    Keine Message
</p>
Hi mitch!

``request/message`` **erwartet**, dass ``message`` existiert. Deshalb gibt es auch einen Fehler aus, wenn ``message`` nicht übergeben wurde.

Rufe deine Testseite mal so auf:

Code: Alles auswählen

http://localhost:8080/pfad_zur_testseite?message=Hallo
Damit enthält ``message`` etwas und du bekommst keinen Fehler.

Wenn du prüfen möchtest, ob ``message`` übergeben wurde, dann kannst du das mit ``exists:`` machen. Das sieht dann so aus:

Code: Alles auswählen

<p tal:condition="exists: request/message">
    Es gibt eine Message
</p>
<p tal:condition="not: exists: request/message">
    Keine Message
</p>
Wenn du nicht weißt ob du etwas übergeben bekommst, dann kannst du es auch so machen:

Code: Alles auswählen

<p tal:condition="exists: request/message"
   tal:content="request/message"
>
    [Diese Nachricht wird ueberschrieben]
</p>
So geht es auch:

Code: Alles auswählen

<p tal:content="request/message | default">
    Keine Message
</p>
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten