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
568 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!

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