Django fix Admin plural


148

Como altero o nome de alguns modelos de "Categorias" para "Categorias" no site de administração na nova versão do dev django? Na versão antiga (sem sites de administração e modelos de administração), você poderia fazer isso; http://www.the-dig.com/blog/post/customize-plural-name-django-admin/

No entanto - agora, definir verbose_name_plural dentro da minha classe baseada em modeladmin não faz nada. Alguém encontrou o mesmo problema?


Funciona para mim no Django 1.1.1 ... Você tem certeza de que está colocando na classe aninhada do Meta?
rescdsk

Sim, eu apenas pensei que novas versões se livraram da classe Meta interna dentro dos modelos. Aparentemente, não - eles apenas fizeram as coisas mais complicadas com aulas de Admin ...
Andriy Drozdyuk

Respostas:


274

Bem, parece que a abordagem da classe Meta ainda funciona. Portanto, colocar uma meta classe dentro do seu modelo ainda funcionará:

class Category(models.Model):
    class Meta:
        verbose_name_plural = "categories"

Observe que usamos a letra minúscula aqui, pois o django é inteligente o suficiente para capitalizá-lo quando necessário.

Acho que definir essa opção na classe modelo é estranha, por oposição ao arquivo admin.py. Aqui está o local nos documentos do desenvolvedor onde está descrito:
http://docs.djangoproject.com/en/dev/ref/models/options/#verbose-name-plural


20
A idéia de definir isso na classe de modelo (em vez de admin.py) se resume a DRY - apenas porque o administrador é a única coisa pronta a usar que usa essas informações sobre o seu modelo não significa que sempre será estar. Espero que, se você precisar do nome plural de um modelo em algum lugar do seu próprio código, use essa propriedade em vez de reinventar a roda.
cibyr

11

para isso, você precisa adicionar meta classes para modelos

class Category(models.Model):
    --- model field here ---
    class Meta: 
        verbose_name = "Category"
        verbose_name_plural = "Categories"

Bônus para seus modelos admin em apps.py

class CategoryConfig(AppConfig):
    name = "Category"
    verbose_name = "Categories"
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.