Nous avons un système construit sur une base de données personnalisée, où de nombreux attributs sont nommés contenant des traits d'union, c'est-à-dire:
{{ user-name }}
3 Réponses :
Malheureusement, je pense que vous pourriez avoir du mal de la chance. De Docs : P>
Les noms de variables doivent être constitués de n'importe quelle lettre (A-Z), n'importe quel chiffre (0-9), un souligné ou un point. P> blockQuote>
Droit. J'ai aussi trouvé une question similaire: Stackoverflow.com/Questtions/2213308/...
Une étiquette de modèle personnalisée est probablement la seule façon d'aller ici si vous ne voulez pas restructurer vos objets. Pour accéder aux dictionnaires avec une clé de chaîne arbitraire, la réponse à Cette question fournit un bon exemple.
pour le paresseux: p> que vous utilisez comme" p> Si vous souhaitez accéder à un attribut d'un objet avec un nom de chaîne arbitraire, vous pouvez utiliser les éléments suivants: p> que vous utiliseriez comme: p > {% attributeLookup your_object_passed_into_context "phone-number" %}
J'ai utilisé cette solution, mais j'ai changé d'une étiquette à un filtre. Ça marche bien, merci!
Cela fonctionne définitivement, mais comment accéderiez-vous une clé qui se trouvait à l'intérieur d'un dict contenant un dict comme valeur?
CommandéDict Types de dictionnaire Supporte les tirets: https://docs.python.org/2/Library/collections. HTML # OrderedDict-Objects
Cela semble être un effet secondaire de la mise en œuvre de commandesDict. Avis ci-dessous que les paires de la valeur clé sont réellement transmises sous forme de jeux. Je parierais que la mise en œuvre de commandesDict n'utilise pas la "clé" transmise dans la définie comme une vraie clé dict qui se déplace donc autour de ce problème. P>
Comme il s'agit d'un effet secondaire de la mise en œuvre de commandesDict, ce n'est peut-être pas quelque chose que vous souhaitez compter sur. Mais cela fonctionne. P> résultat: p>