Как изменить имя приложения в администраторе 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 указано имя приложения, обязательно переименуйте его.
Ответ 4
Похоже, вы пытаетесь изменить способ добавления имени приложения в Django Admin? Это было невозможно до Django 1.7, но теперь вы можете сделать это следующим образом:
https://docs.djangoproject.com/en/1.7/ref/applications/#for-application-users
Ответ 5
В apps.py
from django.apps import AppConfig
class AccountConfig(AppConfig):
name = 'app name'
verbose_name = "new app name"
Ответ 6
В Django 2 мы можем использовать verbose_name в apps.py, но мы должны указать конфигурацию CLass в init.py
Смотрите соответствующий документ здесь
Ответ 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',
# ...
]