Django fix Admin plural

148

¿Cómo cambio el nombre de algunos modelos de "Categorías" a "Categorías" en el sitio de administración en la nueva versión dev django? En la versión anterior (sin sitios de administración y modelos de administración) simplemente podía hacer esto; http://www.the-dig.com/blog/post/customize-plural-name-django-admin/

Sin embargo, ahora configurar verbose_name_plural dentro de mi clase basada en modeladmin no hace nada. ¿Alguien tiene el mismo problema?

Andriy Drozdyuk
fuente
Me funciona en Django 1.1.1 ... ¿Estás seguro de que lo estás poniendo dentro de la clase Meta anidada?
rescdsk
Sí, pensé que las nuevas versiones eliminaban la clase Meta interna dentro de los modelos. Aparentemente no, simplemente complicaron las cosas con las clases de administración ...
Andriy Drozdyuk

Respuestas:

274

Bueno, parece que el enfoque de la clase Meta todavía funciona. Por lo tanto, colocar una metaclase dentro de su modelo seguirá siendo útil:

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

Tenga en cuenta que usamos la minúscula aquí, ya que django es lo suficientemente inteligente como para capitalizarlo cuando lo necesitamos.

Creo que configurar esta opción en la clase de modelo es extraño en lugar del archivo admin.py. Aquí está la ubicación en los documentos de desarrollo donde se describe:
http://docs.djangoproject.com/en/dev/ref/models/options/#verbose-name-plural

Andriy Drozdyuk
fuente
20
La idea de configurar esto en la clase de modelo (en lugar de admin.py) se reduce a SECO , solo porque el administrador es lo único listo para usar que usa esta información sobre su modelo no significa que siempre ser. Con suerte, si necesita el nombre plural de un modelo en algún lugar de su propio código, usará esta propiedad en lugar de reinventar la rueda.
cibyr
11

para eso necesitas agregar metaclases para modelos

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

Bono para su administrador de modelos en apps.py

class CategoryConfig(AppConfig):
    name = "Category"
    verbose_name = "Categories"
Saurabh Chandra Patel
fuente