Seite 1 von 1

[Django] HTML-Code in Textareas wird nicht interpretiert

Verfasst: Sonntag 1. Juni 2008, 18:28
von ferix
Hallo zusammen,

ich bin relativ neuer Python- und Djangonutzer und jetzt auch nur durch mein Studium darauf gestoßen. Ich habe mir jetzt innerhalb weniger Tage ein CMS zusammen gebastelt, was bis auf das Abfangen möglicher Fehler auch soweit funktioniert. Nun habe ich aber doch einen Mangel festgestellt, der mich beunruhigt.

Wenn ich in einem Textfeld im Adminbereich HTML-Code anwende wird dieser auf der Seite leider nicht interpretiert, sondern wieder ausgegeben. Höchstwahrscheinlich ist das in Djano standardmäßig so. Aber gibt es auch eine Möglichkeit dies zu umgehen!?!?

Kann man das vielleicht irgendwo in den views definieren??

Entschuldigt meine Unwissenheit, aber bin wie gesagt erst kurz dabei.
Ansich finde ich das System und Python echt super möchte mich auch gerne in meinem Studienabschlussprojekt damit beschäftigen :)

Wäre super wenn mir da jemand helfen könnte!!!
Vielen Dank!!

Greetz

Verfasst: Sonntag 1. Juni 2008, 18:53
von Leonidas
Hallo ferix, willkommen im Forum,

Es ist schon richtig, dass im Django-Admin sowas nicht möglich ist. Da reicht dann ein ``* { display: none; }`` mittels CSS und dann kannst du den Admin gar nicht mehr sehen.

Verfasst: Sonntag 1. Juni 2008, 18:59
von ferix
Hallo,

was meinst du damit, dass man den Admin nicht mehr sehen kann!?
Mit diesem CSS Befehlt wird doch alles auf display:none gestellt.

Verstehe jetzt nicht so ganz wie mir das helfen soll, dass ich in Textfeldern mit HTML-Code arbeiten kann!?

Verfasst: Sonntag 1. Juni 2008, 19:12
von Leonidas
ferix hat geschrieben:Verstehe jetzt nicht so ganz wie mir das helfen soll, dass ich in Textfeldern mit HTML-Code arbeiten kann!?
Du kannst doch in den Feldern HTML eintippen. Nur wird der in der Anzeige vom Admin zu recht autoescaped, damit man eben keine XSS-Probleme im Admin hat.

Verfasst: Sonntag 1. Juni 2008, 19:17
von jens
@ferix: Was du suchst ist wahrscheinlich "mark_safe", schau mal hier:
http://www.djangoproject.com/documentat ... o-escaping

Verfasst: Sonntag 1. Juni 2008, 19:30
von ferix
Leider kann ich dem nicht so ganz folgen :(

Dass hier auch keine Missverständnisse auftreten.
Ich möchte NICHT, dass der im Admin-Textfeld eingetragene HTML-CODE in diesem FELD selbst interpretiert wird.

Er soll auf der öffentlichen Website korrekt interpretiert werden.

Verfasst: Sonntag 1. Juni 2008, 19:40
von ferix
Oki ich habs:

{% autoescape off %} war das Stichwort ;)

Ihr denkt jetzt vielleicht wie blöde, aber wie gesagt bin absoluter Neuling und mit den auftretenden Fehlern und deren Beseitigung noch nicht so vertraut.

Verfasst: Sonntag 1. Juni 2008, 19:43
von Leonidas
Das ist eine schlechte Idee, besser wäre es den Safe-Filter zu verwenden.

Verfasst: Sonntag 1. Juni 2008, 19:46
von ferix
Und wieso ist das schlecht?
Ich habe das doch nur um den Content gemacht, der auszugeben ist.

Wie verwende ich den Safe-Filter?

Verfasst: Sonntag 1. Juni 2008, 20:16
von Leonidas
ferix hat geschrieben:Und wieso ist das schlecht?
Weil es autoescaping komplett ausschaltet und dir womöglich XSS-Lücken öffnet.
ferix hat geschrieben:Wie verwende ich den Safe-Filter?
So wie in der Django-Dokumentation beschrieben. Also wie jeden Filter.