django Modell CharField: max_length funktioniert nicht?

8

Ich versuche ein Feld mit begrenzten Möglichkeiten zu erstellen:

%Vor%

Als ich jedoch versuchte, Inhalte einzufügen, die gegen die Regeln verstoßen, war es ohne Fehler oder Warnmeldungen (mit "manage.py shell") gelungen. Es scheint, dass jeder Text beliebiger Länge in dieses Feld eingefügt werden kann. Ich verwende SQLite3 als Backend.

Soll es so sein? Oder wenn ich etwas verpasst habe?

    
Xun Yang 12.12.2011, 17:10
quelle

1 Antwort

16

SQLite erzwingt die Länge eines VARCHAR nicht.

Von SQLite Häufig gestellte Fragen :

  

(9) Was ist die maximale Größe eines VARCHAR in SQLite?

     

SQLite erzwingt die Länge eines VARCHAR nicht. Sie können ein VARCHAR (10) deklarieren und SQLite wird Ihnen gerne 500 Zeichen geben. Und es behält alle 500 Zeichen intakt - es schneidet niemals ab.

Wenn Sie die Datenbank mit dem django admin oder den Modellformularen aktualisieren, führt Django die Längenvalidierung für Sie durch. In der Shell könnten Sie full_clean vor dem Speichern manuell aufrufen und Fange den Validierungsfehler.

%Vor%     
Alasdair 12.12.2011, 17:13
quelle