2010-06-16 5 views
8

c'est une question plutôt basique (je suis nouveau sur Django) mais j'ai du mal à utiliser un ensemble de variables à mon avis dans mon modèle. Si j'initialise une chaîne ou une liste dans ma vue (c'est-à-dire h = "Bonjour"), puis tentez de l'appeler dans un modèle:
{{ h }}
Il n'y a ni sortie ni erreur. De même, si je tente d'utiliser une variable dans mon modèle qui n'existe pas:
En utilisant les variables d'affichage Django à l'intérieur des modèles

{{ asdfdsadf }} 

il n'y a encore aucune erreur signalée. Est-ce normal? Et comment puis-je utiliser mes variables dans mes modèles. Merci!

Répondre

22

Afin d'avoir accès à une variable dans un modèle, il doit être dans le contexte utilisé pour rendre ce modèle. Ma conjecture est que vous ne passez pas un dictionnaire de contexte au modèle quand vous le rendez.

http://docs.djangoproject.com/en/dev/topics/http/shortcuts/#render-to-response

Le il référencé « dictionnaire » est un dictionnaire qui contient toutes les variables que vous voulez disposer dans le contexte. Par exemple:

return render_to_response('your_template.html', {'h': h}) 

En ce qui concerne l'erreur "aucune erreur" ... C'est le paramètre par défaut pour une variable de modèle non valide. Vous pouvez changer cela dans les paramètres du projet si vous le souhaitez.

http://docs.djangoproject.com/en/dev/ref/settings/#template-string-if-invalid

3

Oui! C'est normal. De telles erreurs dans les modèles échouent silencieusement et cela est attendu dans Django.

pour afficher correctement utiliser le modèle render_to_response('your_template.html', {'h':h}) (si votre dictionnaire contextuel il y a aussi un raccourci méchant render_to_response('your_template.html', locals()) est très grand) ici

est une explication avec des exemples: http://www.djangobook.com/en/beta/chapter04/ (section « Comment les variables non valides sont traitées »)

Questions connexes