Frage

Ich bin ein bisschen durch diese verwirrt, weil es scheint, dass Django Vorlagen optional HTML-Filter haben, aber dies scheint automatisch der Fall zu sein .. Ich mache diese Demo-Anwendung, wo der Benutzer eine Aktion tun, die ein Python-Skript, das abruft ruft eine uRL, mag ich dann das .. es ist alles in Ordnung, außer in einem neuen Fenster angezeigt werden, wenn die Anzeige zurückkommt, wird der HTML-Code in diesem Format hygienisiert (ich das sehen, wenn ich die Seite Quelle zu sehen, in dem Browser es als reguläres zeigt HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><meta content="text/html; charset=utf-8" http-equiv="content-type" /><script type="text/javascript">//<![CDATA[
si_ST=new Date

Dies ist die normale HTML-Version der gleichen:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><meta content="text/html; charset=utf-8" http-equiv="content-type" /><script type="text/javascript">//<![CDATA[ si_ST=new Date //]]></script><script type="text/javascript">//<![CDATA[ _G={ST:(si_ST?si_ST:new Date),Mkt:"en-

Ich Ausgeben dies nur zu einem Basisblock in meinem HTML-Template, hat die Vorlage keine andere Formatierung (kein HTML, usw.), nur 1 Block, in dem dieser Ausgang geht .. irgendwelche Ratschläge auf, warum dies geschieht und wie man die normalen HTML-Anzeige wird geschätzt .. danke

(also die Seite im Browser und nicht der HTML-Text zeigen würde)
War es hilfreich?

Lösung

Mit dem sicheren Filter:

{{ myvariable|safe }}

Wenn Sie große Teile Ihrer Vorlage müssen so behandelt (das heißt, wenn Sie sich mit |safe immer und immer wieder finden), können Sie die autoescaping Voll Verkauf deaktivieren:

{% autoescape off %}
blah {{myvariable}} blah {{myothervariable}}
{% endautoescape %}

Andere Tipps

Werfen Sie einen Blick auf die „sichere“ Filter, das entweichende Djangos Standard deaktiviert:

http://docs.djangoproject.com/en/1.2 / ref / templates / builtins / # sicher

Es gibt auch autoescape die Kontrollen zu entkommen Block breit.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top