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
DDDoriginal
2024-12-02 21:26:12419parcourir

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 %}

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!

Déclaration:
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