2012-09-25 2 views
2

Je me demande s'il est possible en utilisant l'expression régulière dans les modèles Django:En utilisant l'expression régulière dans Django modèles de

<a href="#{{form.deal_template_name.value}} ????" data-toggle="tab">{{form.deal_template_name.value}}</a> 

Je voudrais remplacer les espaces et les points sur avec _. (Sinon, le lien aurait des problèmes avec la cible)

Comment faire cela directement dans le template, est-ce possible?

+0

S'il vous plaît prendre un peu de recul et de réfléchir à ceci: Modèles de recevoir des données préparées, donc ce que vous passez à un modèle doit déjà avoir reçu cette modification dans le code. Donc, ne faites cela que si vous êtes sûr que c'est nécessaire. – javex

Répondre

4

Si vous voulez vraiment vous tirer dans le pied:

Custom django filter qui fait cela:

{% load replace %} {{ mystring|replace:"/l(u+)pin/m\1gen" }} 
+0

Merci. Pourquoi me tirer dans le pied? – Houman

+2

Ok, peut-être n'est-ce pas si mal :) Django (tm) fait que le langage template n'est pas un langage de programmation complet et que vous devriez traiter vos données à votre vue. En tant que tel exécuter regexp dans votre code serait considéré comme essayant de faire php comme le mélange de html et le code de logique métier. –

+0

J'ai effectivement découvert que Django supporte ce que j'essaie de réaliser -> '' slugify' :) Mais il est toujours bon de savoir comment obtenir des expressions régulières dans les templates. Juste pour comprendre; si je voulais rester avec cette regex après tout, comment pourrais-je traduire '.replace (//g," _ ")' dans 'mystring | replace:" ??? "' – Houman

Questions connexes