Maison > développement back-end > Tutoriel Python > Comment accéder aux valeurs du dictionnaire en utilisant des variables de boucle comme clés dans les modèles Django ?

Comment accéder aux valeurs du dictionnaire en utilisant des variables de boucle comme clés dans les modèles Django ?

DDD
Libérer: 2024-12-02 21:26:12
original
478 Les gens l'ont consulté

How to Access Dictionary Values Using Loop Variables as Keys in Django Templates?

Recherche de valeurs de dictionnaire de variables de modèle Django

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 %}
Copier après la connexion

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)
Copier après la connexion

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 }}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal