Ich möchte das Standardverhalten ändern, wie in der Seitenleiste der letzten Änderungen des Administrators der Name der hinzugefügten "Objekte" angezeigt wird. Siehe Bild unten:
Ich möchte ändern, wie diese im Admin benannt werden. Im Idealfall möchte ich es von "MyModelName-Objekt" in "Richtlinie: {{Wert des Felds" Richtlinienname "der Richtlinie.}} Ändern können, wie im Objektbeispiel" Richtlinie ".
Ich dachte, dass __unicode__
mein Patientenmodell dies handhabte, aber es scheint nicht so. Jede Unterstützung wird geschätzt.
django
django-models
django-admin
Patrickn
quelle
quelle
__unicode__
macht das Fügen Sie Ihren Code ein, damit wir sehen können, was los ist__unicode__
funktionierte nicht für mich in Python 3. Funktionierte jedoch__str__
wie in der Antwort unten dokumentiertAntworten:
__unicode__
macht das Ihr Modell sollte ungefähr so aussehen:Unter Python 3 müssen Sie Folgendes verwenden
__str__
:quelle
Die Verwendung der
__str__
Methode funktioniert unter Python3 und Django1.8:quelle
Die Zeichenfolge, die Sie sehen, stammt von der
__unicode__
Methode, wie andere bereits erwähnt haben. Die Sache ist jedoch, dass der Administrator beim Erstellen eines Protokollereignisses die Zeichenfolgendarstellung eines Objekts speichert. Wenn Sie also__unicode__
nach dem Speichern des Protokolleintrags eine Implementierung hinzufügen , werden neue Titel für alte Elemente erst angezeigt, nachdem Sie eine neue Aktivität ausgeführt habenquelle
Die genannten Antworten
__str__
und__unicode__
Methoden sind korrekt. Wie in den Dokumenten angegeben, können Sie jedoch seit Version 1.6 (glaube ich) denpython_2_unicode_compatible
Decorator sowohl für Python 2 als auch für Python 3 verwenden:Sie können das Obige auch in Nicht-
Model
Objekten verwenden.quelle
Sie müssen definieren, welche Spalte Sie anzeigen möchten ...
beispielsweise:
quelle
Sie haben Recht, wenn Sie denken, dass dies der
__unicode__
Fall ist. Ich habe das gerade laufen:Wenn ich in die Liste der letzten Aktionen schaue, sehe ich den Titel des Films, den ich gerade bearbeitet habe.
quelle
Dies würde mit def str (self) funktionieren: das gibt self.title zurück
Verwenden Sie etwas wie:
quelle
Seit diese Frage 6 Jahre alt ist, haben sich viele Dinge geändert. Lassen Sie mich ein Update vornehmen. Mit Python3.6 und der neuesten Version von Django (2.1.2) sollten Sie immer
__str__()
neuen Code verwenden.__unicode__()
ist eine alte Geschichte für Python2.7, weil in Python3,str
istunicode
.quelle
Durch Hinzufügen einer
__str__()
Methode zum Modell auf folgendePatient
Weise:zeigt den Namen des Patienten anstelle des Objekts an. Einzelheiten finden Sie hier
quelle