Seite 1 von 2

Verfasst: Donnerstag 16. April 2009, 16:39
von ferix
Sprich ich muss noch mein eigenes FormField für das Modelfield schreiben!?
Und in dem FormField implementiere ich meine Validierung.

Ok und dann ist mein neues ModelField ebenso meinem FormField zugeordnet wie z.B. hier:

http://docs.djangoproject.com/en/dev/to ... modelforms

Dann könnte ich es also auch für solche Sachen verwenden. Hmmm ganricht schlecht, wenns auch so ist nun :)

Verfasst: Donnerstag 16. April 2009, 18:48
von ferix
Hui ich glaube jetzt blicke ich ein wenig besser durch...habe mich jetzt mal in die Tiefen des Django-Codes begeben und glaube ich eingies verstanden.

Man ordnet dem neuen ModelField ein neues FormField zu, in dem die Validation stattfindet. Und dem neuen FormField wiederum muss man auch ein Widget per Standard zuweisen.
Wenn das alles so hinhaut dann in der Praxis, kann ich dann alles so verwenden wie die bereits bestehenden Fields :)
Cooole Sache!

Verfasst: Mittwoch 13. Mai 2009, 00:01
von ferix
Nachdem ich noch mal alles überdacht habe bin ich zu dem Schluss gekommen, dass es nicht mit einem eigenen ModelField o.ä. geht.

Die Daten, die eingetragen werden, werden ganz normal validiert.
Die Save-Methode möchte ich überschreiben, weil ich nach der Eingabe
der Daten direkt noch eine Aktion mit den Daten vor habe.

Und wenn diese Aktion schief gehen sollte, würde ich gerne eine
Fehlermeldung an der Stelle positionieren, an der auch die Validation Fehlermeldungen im Admin ausgegeben werden.

Oder hat noch jemand eine Alternative?

[Gelöst]

Verfasst: Mittwoch 13. Mai 2009, 15:04
von ferix
Nachdem ich leider keine Rückmeldungen mehr erhalten habe und fleißig selbst am überlegen und probieren war, wie ich das Angesprochene umsetzen könnte, bin ich zu folgender Lösung gekommen:

http://docs.djangoproject.com/en/dev/re ... -the-admin

Wie hier beschrieben habe ich die clean-Methode überschrieben. Dort führe ich die gewünschten Aktionen aus. Gibt es dann bei meiner ausgeführten Aktion ein Fehler werfe ich eine ValidationError-Exception, die eine Fehlermeldung im Django-Admin ausgibt.

Ich denke zwar, dass das eigentlich nicht Sinn der Sache ist, da die clean-Methode ja eigentlich die echten form-Fields validieren soll, aber nur innerhalb dieser Methode werden die ValidationError-Exceptions dann im Admin als Fehlermeldung ausgegeben.

Was haltet ihr von der Lösung!?

Verfasst: Mittwoch 13. Mai 2009, 16:29
von jens

Verfasst: Mittwoch 13. Mai 2009, 16:33
von ferix
OK vielen Dank für die Auskunft.

Ich kann mit meiner Lösung aber auch gut leben.
Hauptsache ist denke ich, dass ich die Aktionen ausführen kann und wenn diese zu Fehlern führen dieser Fehler im Admin ausgegeben werden.

Verfasst: Mittwoch 13. Mai 2009, 16:34
von jens
Kannst im DocString ja erwähnen, das es mit django 1.2 überarbeitet werden sollte ;)

Verfasst: Mittwoch 13. Mai 2009, 16:57
von ferix
Werd ich machen :)