¿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.htmlplantilla 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.Loaderagregarlo 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_LOADERconfiguración. SóloTEMPLATE_DIRse parece lo suficienteA partir de Django 1.7 no necesita anular plantillas. Ahora puede aplicar site_header ,
site_titleyindex_titlelos 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_headeren suurls.pyoadmin.pydirectamente sin subclasificarAdminSite:fuente
admin_siteque creó. Me gustaadmin_site.register(MyModel, ModelAdmin)admin/base_site.htmlplantilla, por ejemplo, password_reset), también seextra_contextdebe 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_headeren qué configuraciónapp*/admin.pyentrarí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.pyesta 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
AdminSitefuente
admin.site.site_title = 'My site admin'.urls.py:from django.contrib import adminAdminSitey 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.pypuede 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.pyagregar:En
urls.pyagregar: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.pyLa forma más fácil de hacerlo es asegurarte de que tienes
y luego solo agregue estos en la parte inferior
url.pyde su aplicación principalfuente
Para Django 2.1.1 agregue las siguientes líneas a
urls.pyfuente
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
transetiqueta 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 makemessagesEditar
locale/en/LC_MESSAGES/django.po, agregando estas líneas:./manage.py compilemessagesVer 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_lazyNo 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.pyy cambiar el nombre.Para versiones anteriores de Django. (<1.11 y anterior) necesita editar
admin/base_site.htmlCambiar esta línea
a
Puede verificar su
djangoversión porfuente
no necesita cambiar ninguna plantilla para este trabajo, solo necesita actualizar la
settings.pyde su proyecto. Vaya al final delsettings.pyy 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_headerpara cambiar ese texto. Aquí están los documentosfuente
Hay dos métodos para hacer esto:
1] Al anular
base_site.htmlendjango/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.pyel 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.htmlplantilla (copie la plantilladjango.contrib.admin.templatesy coloque su propio directorio de plantilla de administrador) y reemplace elbrandingbloque.fuente