übergibt Unicode-Strings von Django an Javascript

8

Ich habe eine Reihe von Unicode-Strings in meinen Daten, die ich aus meiner Django-Ansicht in eine Vorlage für die Verwendung in einem JavaScript-Skript übertragen muss, das sie an das Internet hin und her übergibt.

Das Problem ist, dass die Zeichenfolgen in der JavaScript-Unicode-Form dargestellt werden sollen, aber ich bekomme Zeichenfolgen mit einem u -Präfix von python.

Für die Zeichenfolge mężczyźni speichert Python sie beispielsweise als u'm \ u0119 \ u017cczy \ u017ani , aber wenn sie an die Vorlage übergeben wird, em> nicht entfernt das u Präfix, das bei der Verarbeitung Probleme mit JavaScript verursacht. Ich möchte, dass es einfach 'm \ u0119 \ u017cczy \ u017ani' ist, damit der JavaScript-Code in der Vorlage es verwenden kann.

Ich habe versucht mit urqluote, smart_unicode, force_unicode, konnte aber keine Lösung oder sogar einen Hack schlagen.

Was mache ich?

    
Knight Samar 29.08.2012, 09:13
quelle

1 Antwort

12

Bearbeiten: Django 1.7+ enthält nicht mehr simplejson . Anstelle von

%Vor%

schreibe

%Vor%

und dann json anstelle von simplejson verwenden.

Sie drucken wahrscheinlich den Python-Ausdruck Ihres Datendiktats und versuchen, ihn in Javascript zu analysieren:

%Vor%

Stattdessen könnten Sie Ihre Daten in json exportieren:

%Vor%

Und laden Sie die Daten direkt in Javascript:

%Vor%

Sie können auch einen Vorlagenfilter erstellen:

%Vor%

Und in deiner Vorlage:

%Vor%

Beachten Sie, dass Sie mit XSS vorsichtig sein sollten, wenn einige "Daten" von Benutzereingaben stammen, dann sollten Sie sie bereinigen.

    
jpic 29.08.2012, 09:23
quelle

Tags und Links