2011-06-10 45 views
1

我有一個Django過濾器不正確的事情。我期待在輸出中看到實際的html,但是我看到的是html轉義的括號。我已經試過autoescape了,我已經試過|安全,並且我已經同時嘗試了兩種。沒有快樂。跆拳道?Django自動轉義,忽略autoescape關閉和|安全

<td>{% autoescape off %}{{ notif.output|safe|insert_breaks|linkify }}{% endautoescape %}</td> 

我沒有看到任何錯誤,只是自動轉義的文本,真的不應該被轉義。

+0

也許您的自定義模板過濾器的一些更多信息(代碼)? – 2011-06-10 01:23:26

+0

insert_breaks的確很簡單,就像text = text.replace('\ n','
')...然而,我看到符號GT;和&amp;在輸出中。 – samurailawngnome 2011-06-10 01:28:57

+0

你可以嘗試在所有其他過濾器('insert_breaks'和'linkify')之後加入'| safe'嗎?據我所知,過濾器是鏈接的。來自Django的文檔:「如果您正在鏈接過濾器,安全後應用的過濾器可能會使內容再次不安全。」 – 2011-06-10 01:50:22

回答

2

這個問題的答案是:

確保您在settings.py template_dir模板指向正確的情況下,一臺主機上運行的代碼的多個版本時。

+0

有趣的猜測。我只在4年內看到過這種情況,但這只是一個想法。 – 2011-06-10 01:49:00