2017-01-26 7 views
0

Ich habe django 1.10.4, Python 3.5.2 Dies ist meine VorlageWarum nicht funktionieren Fluchtfilter in django 1.10

{% extends 'base.html' %} 
{% block content %} 
<div class="main"> 
    <div class="container"> 

     <h3>{{ note.title }}</h3> 
     {{ note.text|escape }} 

     {% autoescape off %} 
      {{ note.text }} 
     {% endautoescape %} 

    </div>  
</div>  
{% endblock %} 

In Datenbank habe ich diese note.text = '<a href="#">some_link</a>'.

Wenn ich Fluchtfilter {{ note.text|escape }} hinzufügen es nicht funktionieren und ich sehe ursprünglichen Zeichenfolge aus der Datenbank <a href="#">some_link</a> Arbeit nur mit dieser Konstruktion {% autoescape off %}{% endautoescape %}. Warum?

+0

Wenn Sie sagen, Sie die ursprüngliche Zeichenfolge zu sehen, wo meinst du damit? im Browser oder den Seiten Quelle? – Sayse

Antwort

3

Docs sagt über Fluchtfilter:

eine HTML-Codes der Escapes String. Insbesondere macht es diese Ersetzungen:

< umgewandelt wird &lt;

> zu &gt; umgewandelt wird

So escape verwenden Sie nur so etwas wie dieses:

&lt;/a&gt; 

die aussieht gut im Browser aber nicht wirklich ein HTML.

Flucht deaktivieren müssen Sie stattdessen safe Filter verwenden:

{{ note.text|safe }} 
+0

Danke es funktioniert – VolArt

+0

@VolArt Sie sind willkommen :) – neverwalkaloner

Verwandte Themen