Eigene Fehlermeldungen im Django-Admin

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

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 :)
ferix
User
Beiträge: 128
Registriert: Sonntag 1. Juni 2008, 18:21

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!
ferix
User
Beiträge: 128
Registriert: Sonntag 1. Juni 2008, 18:21

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?
ferix
User
Beiträge: 128
Registriert: Sonntag 1. Juni 2008, 18:21

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!?
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:


GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
ferix
User
Beiträge: 128
Registriert: Sonntag 1. Juni 2008, 18:21

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.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Kannst im DocString ja erwähnen, das es mit django 1.2 überarbeitet werden sollte ;)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
ferix
User
Beiträge: 128
Registriert: Sonntag 1. Juni 2008, 18:21

Werd ich machen :)
Antworten