Dans les modèles Django, l'accès aux valeurs de dictionnaire est simple en utilisant la syntaxe {{ mydict.key1 }} ou {{ mydict.key2 } }. Cependant, lorsqu'il s'agit de variables de boucle comme clés de dictionnaire, l'approche conventionnelle échoue.
Considérez le scénario suivant :
mydict = {"key1":"value1", "key2":"value2"} {% for item in list %} {{ mydict.item.NAME }} # This fails {% endfor %}
Dans le code ci-dessus, item.NAME sert de variable de boucle avec un NOM d'attribut. Cependant, mydict.item.NAME ne fournit pas le résultat souhaité.
Pour surmonter ce défi, un filtre de modèle personnalisé peut être créé :
from django.template.defaulttags import register ... @register.filter def get_item(dictionary, key): return dictionary.get(key)
Le filtre get_item utilise le .get () pour récupérer la valeur associée à la clé spécifiée. Cela garantit que si la clé est absente, elle renvoie None au lieu de déclencher une KeyError.
Pour utiliser le filtre, modifiez le code du modèle comme suit :
{{ mydict|get_item:item.NAME }}
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!