Um zu ändern, wie und was in der Änderungslistenansicht angezeigt wird, kann list_display
Option von 10 verwendet werden.
Wohlgemerkt, Spalten in list_display
, die keine echten Datenbankfelder sind, können nicht zum Sortieren verwendet werden. Daher muss dem Django-Administrator ein Hinweis gegeben werden, welches Datenbankfeld tatsächlich zum Sortieren verwendet werden soll.
Man tut dies, indem man das Attribut admin_order_field
auf das Callable setzt, das benutzt wird, um einen Wert in HTML zu verpacken.
Beispiel von Django docs für bunte Felder:
class Person(models.Model):
first_name = models.CharField(max_length=50)
color_code = models.CharField(max_length=6)
def colored_first_name(self):
return '<span style="color: #%s;">%s</span>' % (
self.color_code, self.first_name)
colored_first_name.allow_tags = True
colored_first_name.admin_order_field = 'first_name'
class PersonAdmin(admin.ModelAdmin):
list_display = ('first_name', 'colored_first_name')
Ich hoffe, dass einige dies trägt dazu bei.
Danke, .allow_tags hat den Job gemacht. – kelvan
Große Antwort @rebus. Gibt es sowieso eine Bindung der 'colored_first_name' Funktion und Attras zum' PersonAdmin' im Gegensatz zum Model? Es scheint seltsam zu sein, adminspezifische Attribute für das Modell anzugeben. – cooncesean
@cooncesean Ja, der Wert von list_display kann entweder ein String-Name der Methode auf dem Modell oder der admin-Klasse sein, oder er kann eine Referenz auf eine aufrufbare sein. [Weitere Informationen finden Sie in den Dokumentationen] (https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_display) –