Как изменить имя приложения в администраторе Django?

Я создал приложение 'frontend', используя ./manage.py startproject frontend

Но по какой-то причине я просто хочу изменить имя приложения в администраторе Django для отображения 'Your Home Page' вместо 'frontend'.

Как это сделать?

Обновление: Вот немного подробней:

#settings.py
INSTALLED_APPS = (
    'frontend',
)

и

#frontend/models.py
class Newpage(models.Model):
    #field here
class Oldpage(models.Model):
    #field here

Ответ 1

Да, вы можете сделать это просто

в вашем файле apps.py из папки приложения измените атрибут verbose_name из вашего класса конфигурации. Например:

from django.apps import AppConfig


class FrontendConfig(AppConfig):
    name = 'frontend'
    verbose_name = "Your Home Page"

Я тестирую его и работаю в Django 1.10

Ответ 2

В звездах /app.py

from django.apps import AppConfig


class RequestsConfig(AppConfig):
    name = 'stars'
    verbose_name = "Star of India"

в звездах /init.py

default_app_config = 'stars.apps.RequestsConfig'

Чтобы получить доступ к имени приложения в пользовательских методах меню, вы можете попробовать получить его из

model._meta.app_config.verbose_name

Проверьте Django Doc для ссылки https://docs.djangoproject.com/en/1.11/ref/applications/#for-application-users

Ответ 3

1. Попробуйте добавить app_label к вашей модели, которая будет зарегистрирована в Admin.

class MyModel(models.Model):
        pass
    class Meta:
        app_label = 'My APP name'

UPDATE: 2. Шаги по переименованию приложения (папки):

  • Переименуйте папку, которая находится в корневом каталоге проекта
  • Измените любые ссылки на ваше приложение в своих зависимостях, то есть в приложениях, файлах urls.py и settings.py.
  • Отредактируйте таблицу базы данных django_content_type с помощью следующей команды: UPDATE django_content_type SET app_label = '' WHERE app_label = ''
  • Также, если у вас есть модели, вам придется переименовать таблицы моделей. Для postgres используйте ALTER TABLE _modelName RENAME TO _modelName. Для переименования моделей вам необходимо изменить django_content_type.name Примечание. Если в вашем метаданном models.py Meta Class указано имя приложения, обязательно переименуйте его.

Ответ 5

В apps.py

 from django.apps import AppConfig
 class AccountConfig(AppConfig):
    name = 'app name'
    verbose_name = "new app name"

Ответ 7

Я опоздал, но просто добавил еще один шаг к решению, объясненному @FACode.
Из официальных документов:

В frontend/apps.py

from django.apps import AppConfig


class FrontendConfig(AppConfig):
    name = 'frontend'
    verbose_name = "Your Home Page"

В app/settings.py

    INSTALLED_APPS = [
        'frontend.apps.FrontendConfig',
        # ...
    ]