Seite 1 von 1

Was ist das hier für ein Wert? (cheetah)

Verfasst: Samstag 9. Februar 2008, 13:53
von asdfgqw
Stammt aus einem Cheetah template.

Das Problem ist das $archive.
#from atomi import atom
#from StringIO import StringIO
#import re
#if $age > 90 and not($archive)
Status: 410 Gone
#else
Content-Type: application/atom+xml; charset=utf-8
und
so
weiter
Ist das eine Unix variable oder etwas das ich zum Beispiel in einer config.py setzen muss?

Ich bekomme diesen Fehler:
CGI Failure

traceback:Traceback (most recent call last):
File "/var/www/htdocs/index.cgi", line 91, in ?
print response
File "/var/lib/python-support/python2.4/Cheetah/Template.py", line 981, in __str__
def __str__(self): return getattr(self, mainMethName)()
File "/var/www/htdocs/template/atom.py", line 97, in respond
data = VFN(VFFSL(SL,"atomize",False)([item['filename'] for item in VFFSL(SL,"Items",True)],StringIO(),VFFSL(SL,"Items",True),VFFSL(SL,"archive",True)),"getvalue",True)
NotFound: cannot find 'archive'

Re: Was ist das hier für ein Wert? (cheetah)

Verfasst: Samstag 9. Februar 2008, 15:21
von gerold
asdfgqw hat geschrieben:Stammt aus einem Cheetah template.

Code: Alles auswählen

#from atomi import atom
#from StringIO import StringIO
#import re
#if $age > 90 and not($archive)
Status: 410 Gone
#else
Content-Type: application/atom+xml; charset=utf-8
und 
so
weiter
Hallo asdfgqw!

Man kann so nicht sagen woher diese Variable stammen soll. Aus dem von dir gezeigten Code geht nichts dergleichen hervor.

Aber ich habe auch noch nie gesehen, dass jemand *re* oder *StringIO* in eine Textvorlage importiert. So etwas hat darin einfach nichts zu suchen. So etwas lagert man in ein Python-Modul aus... :?

mfg
Gerold
:-)

Verfasst: Donnerstag 28. Februar 2008, 10:57
von asdfgqw
Danke für die Antwort. Ich habe jetzt einiges getestet, aber nichts funktioniert. Das ist die volle Fehlermeldung, vielleicht hilft die etwas:
CGI Failure

traceback:Traceback (most recent call last):
File "/var/www/htdocs/gateway.cgi", line 91, in ?
print response
File "/var/lib/python-support/python2.4/Cheetah/Template.py", line 981, in __str__
def __str__(self): return getattr(self, mainMethName)()
File "/var/www/htdocs/template/atom.py", line 97, in respond
data = VFN(VFFSL(SL,"atomize",False)([item['filename'] for item in VFFSL(SL,"Items",True)],StringIO(),VFFSL(SL,"Items",True),VFFSL(SL,"archive",True)),"getvalue",True)
NotFound: cannot find 'archive'

Verfasst: Donnerstag 28. Februar 2008, 12:42
von Leonidas
Du hast ein Template in dem du eine Variable referenzierst, die nicht definiert ist. Und du wunderst dich?

Versuch mal das:

Code: Alles auswählen

print apfelmus
Und? Tut das? Warum sollte also dein Template funktionieren, wenn du ``archive`` nicht definierst?

Verfasst: Donnerstag 28. Februar 2008, 22:44
von nkoehring
ich finde der Beitrag sollte verschoben werden... hier unter Codesnippets hat das ja nun eigentlich nix zu suchen ;)

Edit (Leonidas): In der Tat... verschoben.

Verfasst: Freitag 29. Februar 2008, 11:15
von asdfgqw
Leonidas hat geschrieben:Du hast ein Template in dem du eine Variable referenzierst, die nicht definiert ist. Und du wunderst dich?

Versuch mal das:

Code: Alles auswählen

print apfelmus
Und? Tut das? Warum sollte also dein Template funktionieren, wenn du ``archive`` nicht definierst?
Die Frage ist wo wird das definiert?

Das was ich hier habe ist ein komplettes blog system das in python geschrieben wurde. Ich habe alle Dateien. Es funktioniert auch alles bis auf dieses eine feature. Gesteuert wird alles über eine config.py in der alle Variablen hinterlegt sind. Das "archive" steht aber dort nicht drin. Ich habe versucht mit

class directory:
archive = "/var/www/htdocs/"

das zu lösen. Ich dachte auch es sei mit einem export Eintrag in der profile zu lösen. Aber nix.

Verfasst: Freitag 29. Februar 2008, 11:36
von BlackJack
Woher sollen wir wissen wo das definiert wird? Bzw. ist es ja offensichtlich dass es nirgends definiert wird. ;-)

Frag doch beim Autor des Quelltextes nach.