[Django]In Admin eingegebene Anführungszeichen quotieren

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
ferix
User
Beiträge: 128
Registriert: Sonntag 1. Juni 2008, 18:21

Hallo zusammen,

ich habe ein Django-Projekt, bei dem aus einem Model eine XML-File erzeugt wird. Problem hierbei ist noch, dass es problemlos möglich ist im Django-Admin bei Textfeldern Anführungszeichen zu verwenden und diese natürlich die XML-File "zerhaun".

Gibt es eine Möglichkeit relativ simpel alle CharFields auf Anführungszeichen zu prüfen und diese dann zu entfernen bzw. zu quotieren???

Alle Felder einzeln in der CustomValidation prüfen erscheint mir doch etwas umständlich. Auch die Auswahl der zur Verfügung stehenden Zeichen mit einem SlugField zu vermindern, finde ich nicht optimal.

Greetz
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

hast dus schonmal mit replace versucht

Code: Alles auswählen

>>> ein_string = 'Ha"ll"o'
>>> ein_string.replace('"', '_')
'Ha_ll_o'
mfg
the more they change the more they stay the same
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Du kannst Django models nach xml serialisieren, der serialiser sollte dann korrekt quoten:
http://docs.djangoproject.com/en/dev/to ... ialization
ferix
User
Beiträge: 128
Registriert: Sonntag 1. Juni 2008, 18:21

Cool danke muss ich mal probieren.
Was macht das dann genau? Das erzeugt noch kein XML-Object ansicht sondern bereitet in meinem Beispiel die CharFields nur für die Erstellung einer XML-File vor (Quotierung etc.)!?

@Dav1d: Auf diese Idee bin ich auch noch gekommen. Ist nur etwas umständlich und ich hätte trotzdem das Problem, alle Felder abarbeiten zu müssen. Trotzdem danke!
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Nein, das konvertiert mehr oder weniger ein object nach xml/json/yaml, was man angibt halt.

P.S.: rechtschreibfehler dürft ihr euch um diese uhrzeit selbst behalten, das ist der nachteil von wgs; vor 12 schon besofffen^^
Antworten