2017-01-26 43 views
0

我有Django的1.10.4,蟒蛇3.5.2 這是我的模板爲什麼不工作的過濾器逃避在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 %} 

在數據庫中,我有那些note.text = '<a href="#">some_link</a>'

當我添加過濾器逃逸{{ note.text|escape }}它不工作,我看到從數據庫<a href="#">some_link</a> 工作 原始字符串只與這種結構{% autoescape off %}{% endautoescape %}。 爲什麼?

+0

當你說你看到原始的字符串,你在哪裏呢?在瀏覽器或網頁源? – Sayse

回答

3

Docs說,大約escape過濾器:

轉義字符串的HTML。具體來說,它使得這些替代品:

<轉化爲&lt;

>轉化爲&gt;

因此,使用escape你只是得到這樣的:

&lt;/a&gt; 

看起來擅長瀏覽器,但不是真的HTML。

要禁用逃生,你需要使用safe過濾器來代替:

{{ note.text|safe }} 
+0

感謝它的運作 – VolArt

+0

@VolArt歡迎:) – neverwalkaloner