que je veux faire dans mon modèle:modèle django: tag modèle personnalisé pour afficher le dictionnaire de dictionnaire
{% for field in form %}
{{ realNameDict.field.name }}
{% endfor %}
realNameDict est un dictionnaire. Le code ci-dessus ne fonctionne pas. Pourquoi ?
EDIT: En python, je pense que je pourrais le faire:
print realNameDict[field[name]]
Un grand merci.
SOLUTION:
Merci à l'explication de @Calvin Cheng: L'astuce consiste à utiliser des balises modèle personnalisé.
1/Dans le répertoire de votre application, créez un répertoire appelé templatetags
. Créez deux fichiers: __init__.py
(laissez-le vide) et extra.py
(utilisé pour créer les balises de modèle personnalisé).
2/Dans extra.py, créez la fonction pour obtenir la valeur d'un dictionnaire de dictionnaire:
from django import template
register = template.Library()
@register.filter
def ofKey(value, arg):
if value:
return value.get(arg)
else:
return ""
3/Dans votre modèle, à l'intérieur du bloc de contenu, ajoutez la ligne suivante pour charger la coutume tag modèle:
{% load extra %}
4/Appelez le tag modèle personnalisé dans votre modèle:
{{ realNameDict|ofKey:field.name }}
Ok. Alors, comment faire? J'ai édité mon premier post pour expliquer ce que je veux faire. – rom
Merci pour la mise à jour, ça marche maintenant! Merci beaucoup. – rom