2010-05-23 6 views
15

Come posso impostare un verbose_name per il metodo di un modello, in modo che possa essere visualizzato nel modulo change_view dell'amministratore?verbose_name per il metodo di un modello

esempio:

class Article(models.Model): 
    title = models.CharField(max_length=64) 
    created_date = models.DateTimeField(....) 
    def created_weekday(self): 
     return self.created_date.strftime("%A") 

in admin.py:

class ArticleAdmin(admin.ModelAdmin): 
    readonly_fields = ('created_weekday',) 
    fields = ('title', 'created_weekday') 

Ora l'etichetta per created_weekday è "Created giorno della settimana", ma mi piacerebbe che avere un'etichetta diversa che dovrebbe essere anche utilizzando ugettext_lazy.

Ho provato

created_weekday.verbose_name=... 

dopo il metodo, ma che non ha mostrato alcun risultato. C'è un decoratore o qualcosa che posso usare, quindi potrei creare il mio "verbose_name"/"label"/whateverthename?

risposta

19

list_display

created_weekday.short_description = 'Foo' 
+1

grazie, che funziona. non c'è da meravigliarsi se non l'ho trovato nella documentazione - è scritto sotto "ModelAdmin.list_display" ... – mawimawi

+3

Sì, ma la documentazione per 'readonly_fields' dice" Questa opzione si comporta in modo quasi identico a ModelAdmin.list_display ". –

+0

@Davor Lucic questo non è lavoro – GoTop

Problemi correlati