Como alguém muda o texto 'Administração do Django' no cabeçalho do django admin?
Parece não estar coberto na documentação "Personalizando o administrador".
python
django
django-admin
samurailawngnome
fonte
fonte
Respostas:
Atualização : Se você estiver usando o Django 1.7+, veja a resposta abaixo .
Resposta original de 2011: você precisa criar seu próprio
base_site.html
modelo de administrador para fazer isso. A maneira mais fácil é criar o arquivo:Esta deve ser uma cópia do original
base_site.html
, exceto colocando seu título personalizado:Para que isso funcione, você precisa ter as configurações corretas para o seu projeto, nomeadamente em
settings.py
:/projectdir/templates/
foi adicionado aoTEMPLATE_DIRS
.django.template.loaders.filesystem.Loader
foi adicionado aoTEMPLATE_LOADERS
.Consulte os documentos para obter mais informações sobre
settings.py
.fonte
{% extends "admin/base.html" %}
em/<projectdir>/templates/admin/base_site.html
e simplesmente redefinir o bloco (s) que você precisa, ou seja{% block branding %}...{% endblock %}
.TEMPLATE_LOADER
configuração. AssimTEMPLATE_DIR
é o suficiente, pareceNo Django 1.7, você não precisa substituir os modelos. Agora você pode implementar site_header ,
site_title
eindex_title
atributos em um AdminSite personalizado para alterar facilmente o título da página do site de administração e o texto do cabeçalho. Crie uma subclasse AdminSite e conecte sua instância ao seu URLconf:admin.py:
urls.py:
Atualização : Como indicado pelo oxfn, você pode simplesmente definir o
site_header
no seuurls.py
ouadmin.py
diretamente, sem subclassificarAdminSite
:fonte
admin_site
que você criou. Comoadmin_site.register(MyModel, ModelAdmin)
admin/base_site.html
modelo, por exemplo, password_reset), tambémextra_context
deve ser usado nos URLs: egurl(r'^password_reset/$', auth_views.password_reset, name='admin_password_reset', kwargs={'extra_context': {'site_header': "My administration"}})
admin.site.site_header
configuração em queapp*/admin.py
entrará em vigor?Existe uma maneira fácil de definir o cabeçalho do site de administração - atribua-o à instância atual do administrador
urls.py
desta maneiraOu pode-se implementar alguma mágica de construção de cabeçalho em método separado
Assim, em casos simples, não há necessidade de subclassificar
AdminSite
fonte
admin.site.site_title = 'My site admin'
.urls.py
:from django.contrib import admin
AdminSite
e passei um tempo tentando fazê-lo funcionar,autodiscover()
mas finalmente pensei nessa solução por conta própria. Na verdade, tenho a minha substituição naadmin.py
, que eu acho que é mais limpo, uma vez que é mantido junto com todos os outros admin-relacionado lógicaEm
urls.py
você pode substituir as 3 variáveis mais importantes:Referência: documentação do Django sobre esses atributos .
fonte
Uma solução completa e simples no Django 1.8.3 com base nas respostas nesta pergunta.
Em
settings.py
adição:Em
urls.py
adição:fonte
admin.py
. Se você ainda não o possui, basta criá-lo e não se esqueça de adicionarfrom django.contrib import admin
.ADMIN_SITE_HEADER
urls.py
A maneira mais fácil de fazer isso é garantir que você tenha
e então basta adicioná-los na parte inferior do
url.py
aplicativo principalfonte
Para o Django 2.1.1, adicione as seguintes linhas em
urls.py
fonte
Como você pode ver nos modelos , o texto é entregue através da estrutura de localização (observe o uso da
trans
marca do modelo). Você pode fazer alterações nos arquivos de tradução para substituir o texto sem fazer sua própria cópia dos modelos.mkdir locale
./manage.py makemessages
Edite
locale/en/LC_MESSAGES/django.po
, adicionando estas linhas:./manage.py compilemessages
Consulte https://docs.djangoproject.com/en/1.3/topics/i18n/localization/#message-files
fonte
admin.py:
fonte
from django.utils.translation import ugettext_lazy
Não esqueça de adicionar esta linha.Primeiro de tudo, você deve adicionar templates / admin / base_site.html ao seu projeto. Este arquivo pode ser sobrescrito com segurança, pois é um arquivo que os desenvolvedores do Django pretendem com o objetivo exato de personalizar um pouco o site de administração. Aqui está um exemplo do que colocar no arquivo:
Esta é uma prática comum. Mas notei depois disso que ainda me restava uma “Administração de Site” irritante na página principal do índice de administração. E essa string não estava dentro de nenhum dos modelos, mas sim dentro da visualização do administrador. Felizmente, é muito fácil mudar. Supondo que seu idioma esteja definido como inglês, execute os seguintes comandos no diretório do projeto:
Agora abra o arquivo locale / pt / LC_MESSAGES / django.po e adicione duas linhas após as informações do cabeçalho (as últimas duas linhas deste exemplo)
Depois disso, lembre-se de executar o seguinte comando e recarregar o servidor do seu projeto:
fonte: http://overtag.dk/wordpress/2010/04/changing-the-django-admin-site-title/
fonte
No Django 2.0, você pode simplesmente adicionar uma única linha no
url.py
e alterar o nome.Para versões mais antigas do Django. (<1.11 e versões anteriores), você precisa editar
admin/base_site.html
Mude esta linha
para
Você pode verificar sua
django
versãofonte
Basta ir ao arquivo admin.py e adicionar esta linha no arquivo:
admin.site.site_header = "My Administration"
fonte
você não precisa alterar nenhum modelo para este trabalho, basta atualizar o
settings.py
do seu projeto. Vá para o final dosettings.py
e defina isso.Dessa forma, você poderá alterar o cabeçalho do administrador do Django. Além disso, você pode ler mais sobre a personalização e as configurações do Django Admin no seguinte link.
Documentação do Django Admin
fonte
Você pode usar
AdminSite.site_header
para alterar esse texto. Aqui estão os documentosfonte
Existem dois métodos para fazer isso:
1] Por substituindo
base_site.html
emdjango/contrib/admin/templates/admin/base_site.html
: Segue-se o conteúdo debase_site.html
:Edite o site_title & site_header no snippet de código acima. Este método funciona, mas não é recomendável, pois é uma alteração estática.
2] Adicionando as seguintes linhas no
urls.py
diretório do projeto:Este método é recomendado, pois podemos alterar o cabeçalho do site, o título do site e o título do índice sem edição
base_site.html
.fonte
Como eu só uso a interface de administração no meu aplicativo, coloquei isso no admin.py:
fonte
Você acabou de substituir o
admin/base_site.html
modelo (copie o modelodjango.contrib.admin.templates
e coloque em seu próprio diretório de modelo de administração) e substitua obranding
bloco.fonte