[Django] Konvertieren von Werten für Formulare?
Verfasst: Dienstag 28. April 2009, 20:34
Ich habe ein Verständnisproblem. Ich will ein `models.JSONField` haben. Das ist nicht weiter schwer zu bauen. Meine Klasse hat zwei Methoden `get_db_prep_value` und `to_python`, die etwas "JSON-artiges" in einen String verwandeln, damit dieser in der Datenbank als TEXT gespeichert werden kann und aus dem String wieder eine Ansammlung von dict, list und den entsprechenden Basistypen machen.
Nun möchte ich das ganze aber auch im Admin-UI bearbeiten können. Dazu muss ich das Python-Objekt zur Anzeige in einem Textarea in einen JSON-String verwandeln und zum Speichern die Rückrichtung implementieren. Diese kann ich als `clean` in einem `forms.Field` bauen. Aber die Hinrichtung?
Mir scheint, Django sieht nicht vor, Objekte zur Anzeige zu konvertieren! Kann das sein?
Man könnte wohl eine `forms.Textarea` Widget-Unterklasse bauen und dort die Konvertierung "verstecken", doch das Admin-UI ist recht eigen in dem was es benutzt und will da ein `AdminTextareaWidget` haben. Oder ich erbe davon... unbefriedigend.
Stefan
Nun möchte ich das ganze aber auch im Admin-UI bearbeiten können. Dazu muss ich das Python-Objekt zur Anzeige in einem Textarea in einen JSON-String verwandeln und zum Speichern die Rückrichtung implementieren. Diese kann ich als `clean` in einem `forms.Field` bauen. Aber die Hinrichtung?
Mir scheint, Django sieht nicht vor, Objekte zur Anzeige zu konvertieren! Kann das sein?
Man könnte wohl eine `forms.Textarea` Widget-Unterklasse bauen und dort die Konvertierung "verstecken", doch das Admin-UI ist recht eigen in dem was es benutzt und will da ein `AdminTextareaWidget` haben. Oder ich erbe davon... unbefriedigend.
Stefan