So wählen Sie den Wert und die Bezeichnung aus dem Django ModelChoiceField-Queryset aus

8

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!

    
helloworld2013 15.11.2013, 23:35
quelle

3 Antworten

5

Fügen Sie in Ihrem Personenmodell Folgendes hinzu:

%Vor%

Wenn Sie Python 3 verwenden, definieren Sie __str__ anstelle von __unicode__ .

%Vor%     
danielcorreia 15.11.2013, 23:57
quelle
21

Aus den Django-Dokumenten:

Ссылка

  

Die Methode __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:

%Vor%

Sie können das also tun oder __str__ in Ihrer Modellklasse überschreiben, um den Nachnamen zurückzugeben.

    
FogleBird 15.11.2013 23:39
quelle
18

Sie können einfach einen Aufruf von label_from_instance in der init von Form ie

hinzufügen

durch Hinzufügen von etwas wie

%Vor%     
Thomas Turner 06.01.2016 21:00
quelle

Tags und Links