In the same way that you can give fields and models verbose names that appear in the Django admin, can you give an app a custom name?
In the same way that you can give fields and models verbose names that appear in the Django admin, can you give an app a custom name?
Give them a verbose_name property.
Don't get your hopes up. You will also need to copy the index view from django.contrib.admin.sites into your own ProjectAdminSite view and include it in your own custom admin instance:
class ProjectAdminSite(AdminSite):
def index(self, request, extra_context=None):
copied stuff here...
admin.site = ProjectAdminSite()
then tweak the copied view so that it uses your verbose_name property as the label for the app.
I did it by adding something a bit like this to the copied view:
try:
app_name = model_admin.verbose_name
except AttributeError:
app_name = app_label
While you are tweaking the index view why not add an 'order' property too.
Well, this works for me. In the app.py use this:
class MainConfig(AppConfig):
name = 'main'
verbose_name="Fancy Title"
In setting.py add the name of App and the class name present in app.py file in App folder
INSTALLED_APPS = [
'main.apps.MainConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
That's simple just add as follow on your appName/apps
class AppNameConfig(AppConfig):
default_auto_field = 'default Django'
name = 'AppName'
verbose_name = 'Name you Want'
Update for 2021 (Django 3.2):
Inside the app.py file of your App you find the AppClientsConfig class. Inside you find the name attribute. Don't change that unless you really have to (and then you will need to also change the app registry inside the settings.py file...etc..).
Instead add an attribute to the class like so to it:
verbose_name = "The Name You Like"
That should do the trick. Feel free to read up more about it on the official Django documentation page.