2011-07-08 6 views
0

Je dict avec hyderlink, par exemple:django: lien hypertexte dans dict html modèles comme lien hypertexte

data = [{a:<\a href="http://someexample.com/a">a</a>, 
     b:'<\a href="http://someexample.com/b">b</a>'}] 

Note: ici je dois ajouter /a href parce que le débordement de la pile prend, il a hyperlien

si je veux en sortie ce html, il affiche un texte HTML normal au lieu de lien hypertexte

modèle

<table> 
{% for fetch in data %} 
<tr> 
<td>{{ fetch.a }}</td> 
<td>{{ fetch.b }}</td> 
</tr> 
{% endfor %} 
</table> 

il donne une sortie comme un texte html au lieu de lien hypertexte

  1. < \ a href = "http://someexample.com/a"> un
  2. < \ a href = "http://someexample.com/b">b

aidez-le vraiment à l'apprécier.

Répondre

2

Au lieu de stocker l'intégralité de la balise d'ancrage, vous devez être le stockage que l'URL (en utilisant URLField si vous stockez dans un modèle), puis l'inclure dans votre modèle comme suit:

<table> 
    {% for fetch in data %} 
    <tr> 
     <td><a href="{{ fetch.a }}">{{ fetch.a }}</a></td> 
     <td><a href="{{ fetch.b }}">{{ fetch.b }}</a></td> 
    </tr> 
    {% endfor %} 
</table> 
1

Cela se produit en raison de automatic string escaping dans le moteur de modèle. Vous pouvez empêcher l'échappement avec le filtre safe, comme:

<table> 
{% for fetch in data %} 
<tr> 
<td>{{ fetch.a|safe }}</td> 
<td>{{ fetch.b|safe }}</td> 
</tr> 
{% endfor %} 
</table>