2013-10-28 8 views
5

Ho due modelli (Paese e Stato) e ho creato un solo ModelAdmin per Paese con TabularInline per Stato.Admin Django: come posso eseguire l'override di un modello verbose_name?

class StateInline(admin.TabularInline): 
    model = State 

class CountryAdmin(admin.ModelAdmin): 
    fieldsets = [ 
     (None, {'fields': ['name']}), 
    ] 
    inlines = [StateInline] 

admin.site.register(Country, CountryAdmin) 

Come posso ignorare il verbose_name proprietà Meta del modello di Paese? Voglio rinominare il modulo nel menu in "Paesi/Stati", anziché solo "Paesi"?

risposta

10

utilizzando Meta

nel modello:

from django.utils.tranlation import gettext_lazy as _ 

class Country(models.Model): 
    # your fields 
    class Meta: 
     verbose_name = _("Country/State") 
     verbose_name_plural = _("Countries/States") 
+2

ho evitato questo tipo di approccio indovinare verbose_name di quel modello è stato utilizzato da qualche altra parte che nel menù di amministrazione. Ma lo userò mentre non ho una soluzione migliore. La soluzione ideale è ModelAdmin con override 'verbose_name', come fa TabularInline. Grazie per la tua risposta ... – jrvidotti

+0

Penso che questo tipo di soluzione non esista, ma puoi segnalare una funzionalità nel sito di django :) – lalo

Problemi correlati