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
Eigene Fehlermeldungen im Django-Admin
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!
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!
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?
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?
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!?
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!?
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
eine richtige Lösung wird wohl erst in django 1.2 mit "Model validation" geben, siehe:
http://code.djangoproject.com/ticket/6845
http://wiki.github.com/HonzaKral/django ... validation
http://groups.google.com/group/django-d ... 616feb229b
http://code.djangoproject.com/ticket/6845
http://wiki.github.com/HonzaKral/django ... validation
http://groups.google.com/group/django-d ... 616feb229b