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

Samstag 11. April 2009, 14:02

Hallo,

gibt es eine Möglichkeit/Funktion im Django-Admin eigene Fehlermeldungen zu erzeugen?

Hintergrund:
Ich möchte die save()-Methode mit ein paar Extras überschreiben und brauche daher eigene Fehlermeldungen. Diese möchte ich gerne im Admin so platzieren wie die üblichen Fehlermeldungen.

Danke für die Rückmeldung.
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Samstag 11. April 2009, 14:05

Klar, adhoc würd ich sagen du überschreibst das get_form vom ModelAdmin, guck einfach mal hier: http://code.djangoproject.com/browser/d ... options.py welche Möglichkeiten es gibt, oder eben in der Dokumentation…
ferix
User
Beiträge: 128
Registriert: Sonntag 1. Juni 2008, 18:21

Samstag 11. April 2009, 16:06

Vielen Dank!

Wäre das von der Doku her der richtige Ansatz?

http://docs.djangoproject.com/en/dev/re ... -the-admin
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Samstag 11. April 2009, 23:11

Jupp, klingt zumindest schon mal gut ;) Ob ich es dann wirklich so machen würde weiß ich nicht, das hängt halt davon ab, was genau du machen willst…
ferix
User
Beiträge: 128
Registriert: Sonntag 1. Juni 2008, 18:21

Sonntag 12. April 2009, 17:06

Aus Erfahrung kann in diesem Bereich niemand sprechen?
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Sonntag 12. April 2009, 19:57

Doch kann ich ;) Aber wie gesagt, es hängt davon ab was du exakt machen willst, möglicherweise ist formfield_for_dbfield ausreichend: http://code.djangoproject.com/browser/d ... ons.py#L71

Wie gesagt, ohne dass du exakt beschreibst was du willst kann ich dir kaum genauere Hinweise geben.

P.S.: Damit wir beide vom gleichen reden, was du unter Fehlermeldungen verstehst, verstehe ich als ValidationError ala "This field is required"/"Select a valid date".
ferix
User
Beiträge: 128
Registriert: Sonntag 1. Juni 2008, 18:21

Dienstag 14. April 2009, 16:00

Genau um so etwas geht es. Bzw. ganz exakt um folgendes:

Es soll ein XML-File generiert werden, welches dann mit einem Tool gegen ein Schema validiert wird. Sollten bei der Validierung Fehler auftreten, soll dies eben ausgegeben werden.
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Mittwoch 15. April 2009, 09:42

Dafür würde ich gleich ein XML-Field verwenden: http://docs.djangoproject.com/en/dev/re ... /#xmlfield
ferix
User
Beiträge: 128
Registriert: Sonntag 1. Juni 2008, 18:21

Mittwoch 15. April 2009, 13:22

Sehr schöne Sache, aber geht auch die Validierung gegen ein XML-Schema?
Laut Doku doch nicht!?

Und die über 3000 Zeilen große Schema-Datei in RelaxNG umschreiben möchte ich nicht unbedingt ^^
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Mittwoch 15. April 2009, 15:10

ferix hat geschrieben:Sehr schöne Sache, aber geht auch die Validierung gegen ein XML-Schema?
Laut Doku doch nicht!?
Laut Doku doch schon?!

Anyways, es umzuschreiben ist wahrscheinlich bescheuert, das stimmt. Dann verwend einfach formfield_for_dbfield oder schreib dir dein eigenes ModelField, dann kannst du es auch außerhalb von Forms verwenden…
ferix
User
Beiträge: 128
Registriert: Sonntag 1. Juni 2008, 18:21

Mittwoch 15. April 2009, 15:15

schema_path¶
The filesystem path to a RelaxNG schema against which to validate the field.

So steht es in der Doku.
Daher dachte ich ist es nicht möglich!?
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Donnerstag 16. April 2009, 10:11

Wenn ich das auf Deutsch übersetzte steht hier klipp und klar:
Der Dateisystempfad zu einem RelaxNG Schema, gegen das das Feld validiert wird.

Aber wie schon gesagt, wenn du kein RelaxNG Schema hast ist das doof…
ferix
User
Beiträge: 128
Registriert: Sonntag 1. Juni 2008, 18:21

Donnerstag 16. April 2009, 15:14

Ja das meinte ich, dass das doof ist ;)

Wie meintest du das mit dem formfield_for_dbfield?

Bzw. wo finde ich eine Doku wie man ein eigenes ModelField schreibt?
Dann könnte ich dieses schreiben mit Validierung gegen XML-Schema.

Vielen Dank!
ferix
User
Beiträge: 128
Registriert: Sonntag 1. Juni 2008, 18:21

Donnerstag 16. April 2009, 15:32

Ok die Seite für Custom Model Fields habe ich gefunden.

http://docs.djangoproject.com/en/dev/ho ... el-fields/

Aber die Stelle bzw. der Funktionsname, die relevant ist wo ich dann mein Validierungscode mit Fehlermeldungen angebe find ich nicht!?
Wo ist da der Ansatzpunkt auf dieser Doku Seite?
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Donnerstag 16. April 2009, 16:16

ferix hat geschrieben:Ok die Seite für Custom Model Fields habe ich gefunden.

http://docs.djangoproject.com/en/dev/ho ... el-fields/

Aber die Stelle bzw. der Funktionsname, die relevant ist wo ich dann mein Validierungscode mit Fehlermeldungen angebe find ich nicht!?
Wo ist da der Ansatzpunkt auf dieser Doku Seite?
Das machst du mit 'formfield', wie in deinem Link eh beschrieben steht. Mein formfield_for_dbfield ist undokumentiert: http://code.djangoproject.com/browser/d ... ons.py#L71 Damit kannst du nur für den Admin ein anderes Formfield verwenden als gewöhnlich…
Antworten