Comment échapper {{ ou }} dans django template?
Django traite {{ var }}
que certaines variables dans le modèle. Comment puis-je échapper à {{ var }}
ou {{
ou }}
tels que django ne pas le traiter comme variable.
<p>"{{ some text }}"</p>
Devrait imprime exactement la même.
Vous devez vous connecter pour publier un commentaire.
Je crois que vous êtes à la recherche pour le
templatetag
balise de modèle.Comme lié à doc unis,
Par exemple:
apparaîtra de la manière suivante:
Django 1.5 introduit
{% verbatim %}
balise de modèle. Il s'arrête modèle à partir de l'analyse du contenu de cette balise:va être traduit comme:
Edit: je n'ai pas vraiment recommandé parce que c'est pas très propre, mais c'est toujours une option.
J'étais à la recherche pour l'un que je pourrais utiliser avec JQuery Templates et a trouvé un moyen de le faire sans les balises ou les filtres. C'est aussi court que j'ai pu obtenir:
Est imprimé en tant que:
Pourquoi ça marche? Tout texte entre {{}} est affiché comme tel, tant qu'il n'a pas deux la fermeture des accolades }} dans une rangée. Ensuite, il y a trois équerres en ligne, django reinhardt, interprète les deux premiers de la fin de la variable laissant une accolade de fermeture.
Vous pouvez essayer de s'enfuir avec des caractères html échappe comme:
{ =
{
} =
}
Essayer à l'intérieur de votre navigateur.
si vous avez simplement besoin d'utiliser {{ }} comme une variable de modèle de cadre comme angularjs, puis le suivant peut-être plus simple:
dans votre
<app path>/templatetags/ngvar.py
, ajouteret dans le modèle, ne
si ngvar.py est le premier modèle de la balise, alors assurez-vous d'ajouter
__init__.py
fichier à latemplatetags
répertoireBien que les réponses ci-dessus peut résoudre le problème d'origine, j'ai ajouter un peu de hack ici pour ceux qui sont se gratter la tête comme moi.
À certains moments, nous voulons rendre une seule accolade suivie par une variable. Par exemple, dans BibTeX, il y a peut être quelque chose de ressembler à ceci:
Ceux bib champs proviennent de variables de modèle. Si vous écrivez
jinja ne peut pas compiler et générer une erreur. Si vous écrivez
il y aura des espaces supplémentaires. Le hack est autour de store '{' et '}' que les variables et les utiliser plus tard.
Cela semble maladroit, mais c'est le meilleur que j'ai trouver jusqu'à présent. Si vous avez une solution plus propre, s'il vous plaît dites-moi.
Une autre option serait d'ajouter un mot menuisier (largeur nulle no-break space) entre chaque accolade:
Cette balise de modèle (conçu pour une utilisation avec jQuery Templates) pourrait faire l'affaire. Il vous permet d'encapsuler le contenu que vous ne voulez pas de Django à interpréter comme des variables avec une balise de modèle.
Jinja, qui est ce qui est utilisé pour les modèles, offre plusieurs suggestions pour échapper à ici. Ce qui a fonctionné le mieux pour moi est d'utiliser quelque chose comme
"{% raw %}{{ some text }}{% endraw %}"
il peut être résolu par avoing adjacentes angulaire backets, si son à l'intérieur d'un code javascript, alors vous pouvez écrire
J'ai utilisé cette option pour imprimer jinja variables sur un autre modèle,à l'aide de javascript.