Per modificare come e cosa viene visualizzato nella visualizzazione elenco modifiche, è possibile utilizzare l'opzione list_display
di ModelAdmin
.
Attenzione, le colonne fornite in list_display
che non sono campi di database reali non possono essere utilizzate per l'ordinamento, quindi è necessario fornire all'amministratore di Django un suggerimento su quale campo di database utilizzare effettivamente per l'ordinamento.
Uno si ottiene impostando l'attributo admin_order_field
nel callable utilizzato per includere un valore in HTML, ad esempio.
Esempio da documentazione Django per i campi colorati:
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')
spero che alcuni di questo aiuta.
fonte
2010-08-09 23:29:44
Grazie, .allow_tags ha fatto il lavoro – kelvan
Ottima risposta @rebus. Esiste comunque un modo per associare la funzione 'colored_first_name' e attrarre il' PersonAdmin' in opposizione al modello? Sembra strano specificare gli attrs specifici dell'amministratore per il modello. – cooncesean
@cooncesean Sì, il valore di list_display può essere un nome stringa del metodo sul modello o la classe admin oppure può essere un riferimento a un callable. [Leggi i documenti per altri esempi] (https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_display) –