2010-11-04 5 views
2
{% if request.session["user_name"] %} 
<div class="abcd">user has username</div> 
{% else %} 
<div class="abcd">user doesn't has username</div> 
{% endif %} 

Est-ce illégal? Il y a des erreurs:django: puis-je écrire python dans un template html?

TemplateSyntaxError at /users/register/submit 

Could not parse the remainder: '['user_name']' from 'request.session['user_name']' 

Répondre

1

Veuillez noter que vous devez transmettre les variables à évaluer de la façon suivante.

Votre script python

template_values = { 
     'message': 'Invalid credentials, please try again' 
      'users': users 
} 

path = os.path.join(os.path.dirname(__file__), 'login.html') 
self.response.out.write(template.render(path, template_values)) 

Le fichier modèle

{% ifequal users.name "name" %} 
<div class="abcd">user has username</div> 
{% endifequal %} 

S'il vous plaît vérifier la django template docs pour obtenir des précisions basée sur la version que votre utilisant.

10

Django doc dit:

système de template Django est pas simplement Python intégré dans HTML

Ce qui signifie que vous ne pouvez pas écrire Python.

parler Cependant sur les variables, le doc dit aussi ceci:

Dans les coulisses

Techniquement, lorsque le système de modèle rencontre un point, il essaie les recherches suivantes, dans cet ordre:

  • Dictionnaire recherche
  • Attribute recherche
  • appel Méthode
  • Liste index recherche

Ce qui signifie que ce que vous essayez est possible, mais la syntaxe droite est:

{% if request.session.user_name %} 
Questions connexes