Django виправити адміністратор множини


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

Ну добре, схоже, підхід класу Meta все ще працює. Тож розміщення мета-класу всередині вашої моделі все одно зробить трюк:

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

Зауважте, що ми використовуємо малі регістри тут, оскільки джанго досить розумний, щоб використовувати його, коли нам це потрібно.

Я вважаю, що цей параметр є дивним для модельного класу на відміну від файлу 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.