12
votes

Touches dictées avec des espaces dans les modèles de Django

J'essaie de présenter un dictionnaire de ma vue.py sur le modèle HTML tel que: xxx pré>

et dans le modèle: p>

Ceci fonctionne sans problème : p> xxx pré>

mais une clé de dictionnaire qui a un espace vide entre des mots tels que "Ceci échoue" ne fonctionne pas: P>

{{ test.this fails }}


0 commentaires

3 Réponses :


-4
votes

Cela ne me convient pas. Pouvez-vous faire ce qui suit? XXX

C'est ainsi que l'accès du dictionnaire à Python fonctionne généralement.


4 commentaires

Impossible d'analyser le reste: '[' Works ']' de 'Test [' Works ']'


Oui, vous accédez à des valeurs de dictionnaire donné une clé à l'aide de . Notation dans les modèles Django.


En regardant la documentation, j'ai le sentiment de ne pas vouloir utiliser des espaces. Je vois des choses comme la personne.First_name, mais jamais rien d'autre. Vous pouvez essayer de regarder le code d'analyse de django.template .__ init__ mais c'est très long et compliqué.


Cela pourrait être utile: Stackoverflow.com/Questtions/1275735/...



2
votes

Je ne connais aucune solution standard à Django. Je pense que c'est possible avec un filtre de modèle.

Vous pouvez être intéressé par cet article HTTP: // PUSH. CX / 2007 / Django-Template-Tag-For-Dictionary-Access (L'auteur utilise le terme Tag de modèle mais il s'agit d'un filtre de modèle)

J'espère que cela aide


2 commentaires

Cela semble fonctionner, mais pour le compte rendu, ce n'est pas une étiquette de modèle, c'est un filtre (on dirait que quiconque a écrit cet article de cette erreur).


Ce n'est pas une erreur. Il prédit le terme "filtre de modèle" de plusieurs années. (Je suis l'auteur du blog post.)



17
votes

Le filtre que vous voulez est quelque chose comme xxx

et utilisé avec xxx

source: http://www.bhphp.com/blog4.php/2009/08/17/ Django-template-and-dictionnaires


3 commentaires

N'oubliez pas de {% chargez myFilter%} dans le modèle


@Ross - Ce site Web lié devrait venir avec un panneau d'avertissement. Mettez vos lunettes de soleil!


Le filtre doit rester dans un fichier à l'intérieur d'un Dir TemplateTags. Plus d'infos @ Stackoverflow.com/questions/3474734 / ...