¿Cómo se cambia el texto de 'Administración de Django' en el encabezado de administración de django?
No parece estar cubierto en la documentación "Personalización del administrador".
python
django
django-admin
samurailawngnome
fuente
fuente
Respuestas:
Actualización : si está utilizando Django 1.7+, consulte la respuesta a continuación .
Respuesta original de 2011: debe crear su propia
base_site.html
plantilla de administrador para hacer esto. La forma más fácil es crear el archivo:Debe ser una copia del original
base_site.html
, excepto poner su título personalizado:Para que esto funcione, debe tener la configuración correcta para su proyecto, es decir, en
settings.py
:/projectdir/templates/
agregarlo aTEMPLATE_DIRS
.django.template.loaders.filesystem.Loader
agregarlo aTEMPLATE_LOADERS
.Consulte los documentos para obtener más información sobre
settings.py
.fuente
{% extends "admin/base.html" %}
ingresar/<projectdir>/templates/admin/base_site.html
, y simplemente redefinir los bloques que necesita, es decir{% block branding %}...{% endblock %}
.TEMPLATE_LOADER
configuración. SóloTEMPLATE_DIR
se parece lo suficienteA partir de Django 1.7 no necesita anular plantillas. Ahora puede aplicar site_header ,
site_title
yindex_title
los atributos de una costumbre AdminSite para cambiar fácilmente el título de la página del sitio de administración y el texto del encabezado. Cree una subclase de AdminSite y conecte su instancia a su URLconf:admin.py:
urls.py:
Actualización : como señala oxfn, simplemente puede configurarlo
site_header
en suurls.py
oadmin.py
directamente sin subclasificarAdminSite
:fuente
admin_site
que creó. Me gustaadmin_site.register(MyModel, ModelAdmin)
admin/base_site.html
plantilla, por ejemplo, password_reset), también seextra_context
debe usar en las URL: por ejemplourl(r'^password_reset/$', auth_views.password_reset, name='admin_password_reset', kwargs={'extra_context': {'site_header': "My administration"}})
admin.site.site_header
en qué configuraciónapp*/admin.py
entraría en vigor?Hay una manera fácil de configurar el encabezado del sitio de administración: asígnelo a la instancia de administrador actual de
urls.py
esta maneraO uno puede implementar algo de magia de construcción de encabezados en un método separado
Por lo tanto, en casos simples no hay necesidad de subclase
AdminSite
fuente
admin.site.site_title = 'My site admin'
.urls.py
:from django.contrib import admin
AdminSite
y pasé un tiempo tratando de hacerlo funcionar,autodiscover()
pero finalmente pensé en esta solución por mi cuenta. De hecho, tengo mi anulaciónadmin.py
, que creo que es más limpia, ya que se mantiene junto con todas las demás lógicas relacionadas con el administradorEn
urls.py
puede anular las 3 variables más importantes:Referencia: documentación de Django sobre estos atributos .
fuente
Una solución completa simple en Django 1.8.3 basada en las respuestas de esta pregunta.
En
settings.py
agregar:En
urls.py
agregar:fuente
admin.py
. Si aún no lo tiene, simplemente créelo y no olvide agregarlofrom django.contrib import admin
.ADMIN_SITE_HEADER
, lo único que importa aquí es la líneaurls.py
La forma más fácil de hacerlo es asegurarte de que tienes
y luego solo agregue estos en la parte inferior
url.py
de su aplicación principalfuente
Para Django 2.1.1 agregue las siguientes líneas a
urls.py
fuente
Como puede ver en las plantillas , el texto se entrega a través del marco de localización (tenga en cuenta el uso de la
trans
etiqueta de la plantilla). Puede realizar cambios en los archivos de traducción para anular el texto sin hacer su propia copia de las plantillas.mkdir locale
./manage.py makemessages
Editar
locale/en/LC_MESSAGES/django.po
, agregando estas líneas:./manage.py compilemessages
Ver https://docs.djangoproject.com/en/1.3/topics/i18n/localization/#message-files
fuente
Simplemente vaya al archivo admin.py y agregue esta línea en el archivo:
admin.site.site_header = "My Administration"
fuente
admin.py:
fuente
from django.utils.translation import ugettext_lazy
No olvides agregar esta línea.En primer lugar, debe agregar plantillas / admin / base_site.html a su proyecto. Este archivo se puede sobrescribir de forma segura, ya que es un archivo que los desarrolladores de Django han pensado con el propósito exacto de personalizar un poco su sitio de administración. Aquí hay un ejemplo de qué poner en el archivo:
Esta es una práctica común. Pero después de esto, noté que todavía me quedaba una molesta "Administración del sitio" en la página principal de índice de administración. Y esta cadena no estaba dentro de ninguna de las plantillas, sino que se configuraba dentro de la vista de administrador. Por suerte, es bastante fácil de cambiar. Suponiendo que su idioma esté configurado en inglés, ejecute los siguientes comandos desde el directorio de su proyecto:
Ahora abra el archivo locale / es / LC_MESSAGES / django.po y agregue dos líneas después de la información del encabezado (las dos últimas líneas de este ejemplo)
Después de esto, recuerde ejecutar el siguiente comando y volver a cargar el servidor de su proyecto:
fuente: http://overtag.dk/wordpress/2010/04/changing-the-django-admin-site-title/
fuente
Desde Django 2.0 puedes agregar una sola línea
url.py
y cambiar el nombre.Para versiones anteriores de Django. (<1.11 y anterior) necesita editar
admin/base_site.html
Cambiar esta línea
a
Puede verificar su
django
versión porfuente
no necesita cambiar ninguna plantilla para este trabajo, solo necesita actualizar la
settings.py
de su proyecto. Vaya al final delsettings.py
y defina esto.De esta forma, podrá cambiar el encabezado del administrador de Django. Además, puede leer más sobre la personalización y configuración de Django Admin en el siguiente enlace.
Documentación de administración de Django
fuente
Puedes usar
AdminSite.site_header
para cambiar ese texto. Aquí están los documentosfuente
Hay dos métodos para hacer esto:
1] Al anular
base_site.html
endjango/contrib/admin/templates/admin/base_site.html
: Lo siguiente es el contenido debase_site.html
:Edite el título del sitio y el encabezado del sitio en el fragmento de código anterior. Este método funciona pero no es recomendable ya que es un cambio estático.
2] Al agregar las siguientes líneas en
urls.py
el directorio del proyecto:Se recomienda este método, ya que podemos cambiar el encabezado del sitio, el título del sitio y el título del índice sin editar
base_site.html
.fuente
Como solo uso la interfaz de administrador en mi aplicación, lo puse en admin.py:
fuente
Simplemente anule la
admin/base_site.html
plantilla (copie la plantilladjango.contrib.admin.templates
y coloque su propio directorio de plantilla de administrador) y reemplace elbranding
bloque.fuente