Ich habe ein Formular mit einem ModelChoiceField, und ich möchte eine Tabelle von meiner DB laden. Wenn ich dieses Abfrage-Set für die Init-Datei meines Formulars verwende, funktioniert das form.is_valid meiner Ansicht einwandfrei:
%Vor%
Dieser Code zeigt die Liste einer ID auf dem ModelChoiceField, aber was ich brauche, ist die Liste der Kategorien anzuzeigen. Also ich benutze:
%Vor%Aber mit diesem Code .is_valid nicht validieren und ich empfange einen Formularfehler: "Wählen Sie eine gültige Wahl. Diese Wahl ist nicht eine der verfügbaren Auswahlmöglichkeiten." Einige Hinweise darauf, was das Problem sein könnte?
MODELL
%Vor%FORM
%Vor% Verwenden Sie nicht values_list
, (oder values
), ModelChoiceField
benötigt tatsächliche Modellobjekte.
ModelChoiceField
verwendet die Primärschlüssel der Objekte für die Validierung und ihre Unicode-Darstellung für die Anzeige. Daher müssen Sie in Ihrem Modell die Konvertierung in Unicode definieren:
ModelChoiceField-Dokumentation
Die Methode
__unicode__
des Modells wird aufgerufen, um String-Repräsentationen der Objekte zur Verwendung in den Feldauswahlmöglichkeiten zu generieren;
Tags und Links django forms validation dynamic-forms