2012-08-17 1 views
2

non définie dans le contrôleur, je définis 2 Méthode:Pylônes Mako variables

foobar.py:

class foo(self): 
    c.help_text = 'help' 
    return render('/index.html') 

class bar(self): 
    return render('/index.html') 

index.html:

${c.help_text} 

Cela me donne une erreur ==> AttributeError: l'objet 'ContextObj' n'a pas d'attribut 'help_text'

Après avoir lu quelques documents mako, j'essaie:

% if c.help_text is UNDEFINED: 
     foo 
    % else: 
     ${c.help_text} 
    % endif 

Cela me donne aussi une erreur. Puis dans mon development.ini, je mets:

mako.strict_undefined = false 

après

[app:main] 

Cela me donne toujours une erreur ==> AttributeError: objet 'ContextObj' n'a pas d'attribut 'help_text'

+0

voir cette question: http://stackoverflow.com/questions/12006720/pylons-mako-how-to-check-if-variable-exist-or-not –

Répondre

0

Je crois que le code de votre contrôleur est incorrect. Votre premier échantillon doit être soit ...

def foo(request): 
    c.help_text = 'help' 
    return render('/index.html') 

def bar(request): 
    return render('/index.html') 

... ou ...

class Controller(object): 
    def foo(self, request): 
     c.help_text = 'help' 
     return render('/index.html') 

    def bar(self, request): 
     return render('/index.html') 

Je crois que parce que vous avez ce code contrôleur incorrect, le "c.help_text" n'est pas réellement en cours d'exécution en réponse à la gestion d'une requête, mais il est géré dès le démarrage de l'application.

Si vous résolvez ces erreurs et avez encore des problèmes, pouvez-vous s'il vous plaît fournir plus d'informations sur l'erreur? Avez-vous une trace de pile ou un numéro de ligne exact?