DjangoAdmin: Problem mit clean-Methode

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

Hallo zusammen,

folgendes Problem ist mir gerade in Django bzw. bei der Verarbeitung von im DjangoAdmin eingegebenen Daten untergekommen.

Ich habe ein ein models.DecimalField, was optional angegeben werden kann (blank=True, null=True). In meiner Verarbeitung der Daten prüfe ich, ob das Feld gesetzt ist.
Gibt jetzt ein User aus Versehen dort keine Zahl ein erhalte ich einen KeyError.

Dieser Fehler tritt eigentlich nur auf, wenn ich meine eigene Datenverarbeitung aufrufe.
Ansonsten kommt von Django eine ganz normale Fehlermeldung, dass man doch bitte eine Zahl eingeben möchte.

Also kommt meine Datenverarbeitung wohl noch bevor die djangoeigene clean-Methode darüberläuft. Meine Datenvrarbeitung wird nämlich in meiner eigenen clean-Methode aufgerufen, da ich hier bei Fehlern eigene ValidationErrors im Admin ausgeben kann.

Das realisiere ich so:

Code: Alles auswählen

    def clean(self):
        ...        
        export = IS24Export(self.cleaned_data)
        ...
        return self.cleaned_data
Die einfachste Lösung wäre sicher die Datenverarbeitung aus der clean-Methode rauszuhalten. Aber dann kann ich leider keine Validationerrors mehr im DjangoAdmin ausgeben. Gibt es nicht eine Möglichkeit vielleicht eine super clean Methode vor meiner Datenverarbeitung aufzurufen oder so ähnlich!?
Antworten