Maison >développement back-end >Tutoriel Python >Comment accéder aux valeurs du dictionnaire avec des clés dynamiques dans les modèles Django ?

Comment accéder aux valeurs du dictionnaire avec des clés dynamiques dans les modèles Django ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-09 07:07:06618parcourir

How to Access Dictionary Values with Dynamic Keys in Django Templates?

Accès aux valeurs du dictionnaire avec des clés dynamiques dans les modèles Django

Les modèles Django offrent un moyen pratique de travailler avec des dictionnaires, permettant aux développeurs d'accéder aux valeurs à l'aide de la notation par points (par exemple, {{ mydict.key1}}). Cependant, lorsque la clé est une variable de boucle, telle que item.NAME dans l'exemple fourni, l'accès direct à la valeur du dictionnaire devient problématique.

Solution : utilisation de filtres de modèles personnalisés

Pour surmonter ce défi, Django offre la possibilité de définir des filtres de modèles personnalisés qui étendent les fonctionnalités du système de modèles. Voici un filtre qui vous permet de rechercher des valeurs de dictionnaire avec des clés variables :

# import the necessary modules
from django.template.defaulttags import register

# define the custom template filter
@register.filter
def get_item(dictionary, key):
    return dictionary.get(key)

Le filtre get_item utilise la méthode get pour récupérer la valeur correspondant à la clé fournie dans le dictionnaire donné. Si la clé n'est pas trouvée dans le dictionnaire, get_item renverra None au lieu de déclencher une KeyError.

Utilisation dans les modèles

Pour utiliser le filtre personnalisé, dirigez simplement le dictionnaire et la clé de la variable, comme indiqué ci-dessous :

{{ mydict|get_item:item.NAME }}

Dans cet exemple, mydict est le dictionnaire contenant la valeur-clé paires, et item.NAME est la clé variable. Le filtre get_item recherchera la valeur dans mydict à l'aide de la clé item.NAME et renverra la valeur correspondante.

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