En django, nous pouvons le faire:Pylônes Mako comment vérifier si elles existent variables ou non
views.py :
def A(request):
context = {test : 'test'}
return render_to_response('index.html', context , context_instance = RequestContext(request))
def B(request):
context = {}
return render_to_response('index.html', context , context_instance = RequestContext(request))
index.html:
{% if test %}
{{ test }}
{% endif %}
Et que notre modèle rend sans erreur, même si je l'utilise method B
, où 'test'
variable n'existe pas, mais Je peux toujours le mettre dans le gabarit.
Je veux faire la même chose avec pylones + mako, dans le contrôleur:
foo.py
def A(self):
c.test = 'test'
return render('index.html')
def B(self):
return render('index.html')
index.html :
% if c.test:
${'c.test'}
% endif
Dans Django, je peux le faire, mais dans Pylônes, je reçois une erreur, est de toute façon de vérifier wheter 'c.test'
existe ou pas?
l'erreur: AttributeError: objet 'ContextObj' n'a pas d'attribut 'test'
merci, juste une autre question, donc si je ne suis pas sûr que certaines variables existent ou non, n'utilisez pas strict_undefined = True? – Santana
Non, je pense que l'emballage dans un bloc try/except marcherait toujours dans ce cas. Je m'en remettrais à quelqu'un de plus expérimenté, mais je soupçonne qu'il s'agit plutôt de garder un style de codage cohérent. Je ne suis pas sûr de le faire d'une manière sur l'autre est «plus correct». – chris
J'ai ajouté une réponse qui ne dépend pas de strict_undefined –