2010-01-26 15 views
10

Sto tentando di memorizzare codice HTML non scostato su uno dei miei modelli Django per la visualizzazione sulla mia home page. Tuttavia, quando lo memorizzo in un campo di testo, viene sfuggito e finisce per essere visualizzato come testo non elaborato. Come posso memorizzare HTML non elaborato in un modello Django?Django - Memorizza codice HTML senza escape nel modello

** EDIT **

sembra come se la sua non sempre sfuggito nello strato modello, ma nello strato di Modello. C'è un tag speciale che dovrei usare? Ho controllato il valore nella shell e va bene, ma per qualche ragione quando ho fatto {{block.html} (html è l'attributo dell'oggetto block che memorizza l'HTML effettivo) nel template, viene fuori in questo modo:

<p>This is a <strong>very</strong> <em>important</em> <span style="text-decoration: underline;">block</span></p> 
<p style="padding-left: 30px;">it has very significant content!</p> 
+0

No, non lo è. Ti sfido a dimostrare il contrario. –

risposta

15

È possibile utilizzare il filtro safe di presentare il testo escape, o escape filtro per presentare il testo sfuggito. È inoltre possibile utilizzare il tag autoescape per impostare un blocco. ({% autoescape on %} o {% autoescape off %})

+0

Si noti l'implicazione della sicurezza dell'utilizzo del filtro '| safe' o quando si disabilita l'autoescape. Assicurati che tutto ciò che passa attraverso quel filtro/blocco sia effettivamente sicuro. –