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

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

Mary-Kate Olsen
Libérer: 2024-12-24 05:37:17
original
505 Les gens l'ont consulté

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

Modèles Django : accéder aux valeurs du dictionnaire avec des clés variables

L'accès aux valeurs du dictionnaire dans les modèles Django est simple à l'aide de l'opérateur point, c'est-à-dire {{ mydict.key }}. Cependant, des défis surviennent lorsque la clé est elle-même une variable, en particulier lorsqu'il s'agit d'une propriété d'une variable de boucle.

Problème :

Considérez la situation suivante :

mydict = {"key1":"value1", "key2":"value2"}

{% for item in list %}
  {{ mydict.item.NAME }} # Attempt to look up mydict[item.NAME]
{% endfor %}
Copier après la connexion

Ici, la syntaxe mydict.item.NAME échoue.

Solution :

Pour résoudre ce problème, vous pouvez créer un filtre de modèle personnalisé :

from django.template.defaulttags import register

@register.filter
def get_item(dictionary, key):
    return dictionary.get(key)
Copier après la connexion

Notez que get() est utilisée à la place de Dictionary[key] pour gérer le cas où la clé est absente (en renvoyant None au lieu de lever un KeyError).

Utilisation :

Une fois le filtre enregistré, vous pouvez accéder aux valeurs du dictionnaire à l'aide de clés variables 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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal