Django-Formular, das clean_fieldname nicht aufruft

7

Ich versuche ein Formular zu validieren (und es hat früher funktioniert). Aus irgendeinem Grund kann ich nicht scheinen, die verschiedenen Reinigungsfunktionen wie clean_username (self) aufgerufen zu bekommen, wenn form.is_valid () aufgerufen wird.

Ich weiß, dass es noch nicht genug Kontrollen gibt (sie sind im Aufbau, sehen Sie ;-)), aber hier sind meine Klassen:

%Vor%

Danke!

    
SapphireSun 09.12.2009, 05:21
quelle

2 Antworten

25

Ich habe die Quelle des Fehlers nach dem Tauchen in Django entdeckt forms.py Quelle.

Es scheint, dass wenn ein Feld leer gelassen wird, das Formular einen ValidationError für dieses Feld nach dem Aufruf von field.clean() auslöst, aber es ruft dann nicht clean_<fieldname> auf, ruft aber immer noch die clean-Methode der Klasse auf. Um mit einer sauberen Methode umzugehen, die diese leeren Felder verwendet, müssen Sie Folgendes tun:

%Vor%     
SapphireSun 09.12.2009, 07:04
quelle
7

Sie können dies überschreiben, indem Sie required=False in Ihren Feldkonstruktoren verwenden.

%Vor%

Dies scheint für Ihr Beispiel unlogisch, kann aber nützlich sein, wenn andere Instanzen

    
Zach 09.12.2009 18:53
quelle

Tags und Links