Wie zeige ich in der Änderungsliste für den Django-Admin ein Leerzeichen anstelle des Standardwerts "(None)" an?

7

Wenn ein Feld in der Datenbank null ist, fügt Django "(None)" ein, um den Platz des Nullwerts bei der Anzeige einer Änderungsliste zu halten. Während beschreibend, wenn es viele Felder auf einer Änderungsliste gibt, macht es alles sehr beschäftigt, um zu betrachten, wo ein leeres Feld genauso hilfreich wäre, aber viel weniger überladen. Gibt es eine Möglichkeit, den Text zu ändern, den Django für die Darstellung von Nullfeldern in der Änderungsliste verwendet? Es spielt keine Rolle, ob die Lösung modeladmin-spezifisch oder admin-weit ist.

Sollte auch hinzufügen, dass ich die Lösung kenne, wo Sie benutzerdefinierte Felder definieren und dann eine leere Zeichenfolge ausgeben. Das funktioniert, aber das macht die Spalte unportierbar, und das ist eine Priorität vor der Anzeige, also ist das keine Option.

    
meesterguyperson 27.01.2015, 16:09
quelle

2 Antworten

8

Sie können das einzelne ModelAdmin-Verhalten mit dieser Problemumgehung überschreiben:

%Vor%

Hinweis: Das Überschreiben von __init__() ist nicht kompatibel mit dem @admin.register() Dekorator, stattdessen müssen Sie admin.site.register(Model, ModelAdmin) aufrufen, nachdem die Klasse Model definiert wurde.

    
meesterguyperson 27.01.2015, 17:00
quelle
12

Ab Django 1.9 hat sich dieses Verhalten geändert und einige benutzerdefinierte Funktionen wurden hinzugefügt, um eine Lösung für die von Ihnen beschriebene Situation zu unterstützen.

Mit Django 1.9 verwendet Django jetzt ein '-' (Bindestrich) anstelle von "(None)", um NULLs im Django-Admin anzuzeigen.

Zusätzlich können Sie diese Standardanzeige für den Django-Administrator mit dem empty_value_display : global für eine bestimmte Admin-Klasse oder ein bestimmtes Feld anpassen:

Weltweit:

%Vor%

Für alle Felder in einer Django-Admin-Klasse:

%Vor%

Für ein einzelnes Feld:

%Vor%     
D Rubio 25.01.2016 21:47
quelle