Ich habe versucht, ein Django-Formular zu erstellen, und eines meiner Felder enthält ein ModelChoiceField
%Vor%Wenn ich den obigen Code versuche, was es als HTML-Ausgabe zurückgibt, ist
%Vor%auf meinem Personenmodell Ich habe die Felder "id, fname, lname, is_active". Ist es möglich, anzugeben, dass meine Dropdown-Option "id" als Wert und "lname" als Bezeichnung verwendet? Der erwartete HTML sollte
sein %Vor%Vielen Dank im Voraus!
Fügen Sie in Ihrem Personenmodell Folgendes hinzu:
%Vor% Wenn Sie Python 3 verwenden, definieren Sie __str__
anstelle von __unicode__
.
Aus den Django-Dokumenten:
Die Methode
%Vor%__unicode__
(__str__
auf Python 3) des Modells wird sein aufgerufen, um String-Repräsentationen der Objekte zur Verwendung in zu generieren die Wahl des Feldes; um benutzerdefinierte Darstellungen, Unterklasse bereitzustellen ModelChoiceField und überschreiben label_from_instance. Diese Methode wird empfängt ein Modellobjekt und sollte eine für es darstellen. Zum Beispiel:
Sie können das also tun oder __str__
in Ihrer Modellklasse überschreiben, um den Nachnamen zurückzugeben.
Sie können einfach einen Aufruf von label_from_instance in der init von Form ie
hinzufügendurch Hinzufügen von etwas wie
%Vor%