Flask JSON serializable Fehler wegen der Flasche babel

8

Ich verwende Ссылка Erweiterung für die Lokalisierung.

Basisformklasse

%Vor%

meine Formularklasse

%Vor%

meine Ansicht

%Vor%

Es wirft diesen Fehler "TypeError: lu'Post Inhalt ist erforderlich" ist nicht JSON serializable ".

wenn ich die Lokalisierung von _ ("Beitrag Titel") zu "Beitrag Titel" es funktioniert, aber wenn ich Babel verwende, funktioniert es nicht

Ich denke, es geht um Unicode. weil ich das geändert habe _ ("Beitrag Titel"). encode ("utf-8") es funktioniert. Aber diese Lösung ist nicht effektiv. Wie kann ich das Problem lösen.

    
Alexander 30.09.2014, 15:28
quelle

2 Antworten

11

Das Problem besteht darin, dass Ihre Fehlermeldung ein _LazyString -Objekt ist, das von lazy_gettext zurückgegeben wird, keine Zeichenfolge. Normalerweise wäre dies kein Problem, da die Anzeige in einer Vorlage str() aufrufen würde, wodurch die Übersetzung ausgewertet würde. Sie sammeln jedoch die Objekte in error_list und übergeben sie dann an jsonify , und json hat keinen Serializer für diese Objekte.

Sie müssen Flasks JSON-Serializer mitteilen, wie mit diesen Objekten verfahren wird. Schreiben Sie einen benutzerdefinierten Serializer und weisen Sie ihn dann app.json_encoder zu.

%Vor%     
davidism 30.09.2014, 21:01
quelle
0

Ändern Sie die Lösung des Davidismus in

%Vor%

um stattdessen mit Python 2 zu arbeiten.

    
andjelx 24.02.2017 10:29
quelle

Tags und Links