Джанго исправить админ множественного числа


148

Как изменить название некоторых моделей с «Категорий» на «Категории» на сайте администратора в новой версии dev django? В старой версии (без администраторов сайтов и моделей администраторов) вы могли просто сделать это; http://www.the-dig.com/blog/post/customize-plural-name-django-admin/

Однако - теперь установка verbose_name_plural внутри моего класса на основе modeladmin ничего не делает. Кто-нибудь поддерживает ту же проблему?


Это работает для меня в Django 1.1.1 ... Вы уверены, что помещаете это в класс Meta?
rescdsk

да, я просто подумал, что новые версии избавились от внутреннего класса Meta внутри моделей. Видимо, нет - они просто усложнили административные занятия ...
Андрей Дроздюк

Ответы:


274

Ну, похоже, подход с мета-классом все еще работает. Поэтому размещение мета-класса внутри вашей модели все равно поможет:

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

Обратите внимание, что здесь мы используем нижний регистр, так как django достаточно умен, чтобы использовать его с большой буквы, когда нам это нужно.

Я нахожу установку этой опции в классе модели странной, в отличие от файла admin.py. Вот место в документации разработчика, где оно описано:
http://docs.djangoproject.com/en/dev/ref/models/options/#verbose-name-plural


20
Идея установить это в классе модели (а не в admin.py) сводится к DRY - просто потому, что администратор - единственное, что из коробки использует эту информацию о вашей модели, не означает, что она будет всегда быть. Надеюсь, если вам понадобится множественное имя модели где-то в вашем собственном коде, вы будете использовать это свойство вместо того, чтобы заново изобретать колесо.
cibyr

11

для этого нужно добавить мета классы для моделей

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

Бонус для ваших моделей админа в apps.py

class CategoryConfig(AppConfig):
    name = "Category"
    verbose_name = "Categories"
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.