tutorial theme template personalizar password createsuperuser python django django-admin

python - theme - Administrador de Django: cambie el texto "Administración de Django" del encabezado



django-admin createsuperuser (13)

A partir de Django 1.7 no es necesario que anule las plantillas. Ahora puede implementar los site_header , site_title e index_title en un AdminSite personalizado para cambiar fácilmente el título de la página y el texto del encabezado del sitio de administración. Cree una subclase AdminSite y enganche su instancia en su URLconf:

admin.py:

from django.contrib.admin import AdminSite from django.utils.translation import ugettext_lazy class MyAdminSite(AdminSite): # Text to put at the end of each page''s <title>. site_title = ugettext_lazy(''My site admin'') # Text to put in each page''s <h1> (and above login form). site_header = ugettext_lazy(''My administration'') # Text to put at the top of the admin index page. index_title = ugettext_lazy(''Site administration'') admin_site = MyAdminSite()

urls.py:

from django.conf.urls import patterns, include from myproject.admin import admin_site urlpatterns = patterns('''', (r''^myadmin/'', include(admin_site.urls)), )

Actualización : como lo señaló oxfn, simplemente puede configurar el site_header en su urls.py o admin.py directamente sin subclasificar AdminSite :

admin.site.site_header = ''My administration''

¿Cómo se puede cambiar 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".


Como puede ver en las templates , el texto se entrega a través del marco de localización (tenga en cuenta el uso de la etiqueta de plantilla trans ). Puede hacer cambios en los archivos de traducción para sobrescribir el texto sin hacer su propia copia de las plantillas.

  1. mkdir locale
  2. ./manage.py makemessages
  3. Edite locale/en/LC_MESSAGES/django.po , agregando estas líneas:

    msgid "Django site admin" msgstr "MySite site admin" msgid "Django administration" msgstr "MySite administration"

  4. ./manage.py compilemessages

Ver https://docs.djangoproject.com/en/1.3/topics/i18n/localization/#message-files


Como solo uso la interfaz de administrador en mi aplicación, puse esto en admin.py:

admin.site.site_header = ''My administration''


En primer lugar, desea agregar templates / admin / base_site.html a su proyecto. Este archivo se puede sobrescribir con seguridad, ya que es un archivo que los desarrolladores de django han tenido la intención de personalizar un poco el sitio de administración. Aquí hay un ejemplo de qué poner en el archivo:

{% extends "admin/base.html" %} {% load i18n %} {% block title %}{{ title }} | {% trans ''Some Organisation'' %}{% endblock %} {% block branding %} <style type="text/css"> #header { /* your style here */ } </style> <h1 id="site-name">{% trans ''Organisation Website'' %}</h1> {% endblock %} {% block nav-global %}{% endblock %}

Esta es una práctica común. Pero me di cuenta después de esto de que aún me quedaba una molesta "Administración del sitio" en la página principal del índice de administración. Y esta cadena no estaba dentro de ninguna plantilla, sino que estaba dentro de la vista de administrador. Afortunadamente, es bastante fácil de cambiar. Suponiendo que su idioma está configurado en inglés, ejecute los siguientes comandos desde su directorio de proyecto:

$ mkdir locale $ ./manage.py makemessages -l en

Ahora abra el archivo locale / en / LC_MESSAGES / django.po y agregue dos líneas después de la información del encabezado (las últimas dos líneas de este ejemplo)

"Project-Id-Version: PACKAGE VERSION/n" "Report-Msgid-Bugs-To: /n" "POT-Creation-Date: 2010-04-03 03:25+0200/n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE/n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>/n" "Language-Team: LANGUAGE <[email protected]>/n" "MIME-Version: 1.0/n" "Content-Type: text/plain; charset=UTF-8/n" "Content-Transfer-Encoding: 8bit/n" msgid "Site administration" msgstr "Main administration index"

Después de esto, recuerda ejecutar esto y volver a cargar el servidor de tu proyecto:

$ ./manage.py compilemessages

fuente: http://overtag.dk/wordpress/2010/04/changing-the-django-admin-site-title/


En urls.py puedes anular las 3 variables más importantes:

admin.site.site_header = ''My project'' admin.site.index_title = ''Features area'' admin.site.site_title = ''HTML title from adminsitration''


Hay una manera fácil de configurar el encabezado del sitio de administración: urls.py instancia de administración actual en urls.py como este

admin.site.site_header = ''My admin''

O uno puede implementar algo de magia de construcción de encabezado en un método diferente

admin.site.site_header = get_admin_header()

Por lo tanto, en casos simples no hay necesidad de subclasificar AdminSite


La manera más fácil de hacerlo, asegúrese de tener

from django.contrib import admin

y luego solo url.py en la parte inferior de url.py de tu aplicación principal

admin.site.site_title = "Your App Title" admin.site.site_header = "Your App Admin"


Puede usar AdminSite.site_header para cambiar ese texto. Aquí están los docs


Simplemente anula la plantilla admin/base_site.html (copie la plantilla de django.contrib.admin.templates y póngala en su propio directorio de plantillas de administración) y reemplace el bloque de branding .


Una solución completa simple en Django 1.8.3 basada en las respuestas en esta pregunta.

En settings.py agregue:

ADMIN_SITE_HEADER = "My shiny new administration"

En urls.py agrega:

from django.conf import settings admin.site.site_header = settings.ADMIN_SITE_HEADER


no necesita cambiar ninguna plantilla para este trabajo, solo necesita actualizar la settings.py de su proyecto. Ve a la parte inferior de settings.py y define esto.

admin.site.site_header = ''My Site Admin''

De esta forma, podría 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 del administrador de Django


Actualización : si está utilizando Django 1.7+, consulte la respuesta a continuación .

Respuesta original de 2011: debe crear su propia plantilla de administrador base_site.html para hacer esto. La forma más fácil es crear el archivo:

/<projectdir>/templates/admin/base_site.html

Debería ser una copia de https://github.com/django/django/blob/master/django/contrib/admin/templates/admin/base_site.html , excepto que incluya su título personalizado:

{% block branding %} <h1 id="site-name">{% trans ''my cool admin console'' %}</h1> {% endblock %}

Para que esto funcione, debe tener la configuración correcta para su proyecto, es decir, en settings.py:

  • Asegúrese de que ''/ projectdir / templates /'' se agregue a TEMPLATE_DIRS
  • Asegúrate de que ''django.template.loaders.filesystem.Loader'' se haya agregado a TEMPLATE_LOADERS

Consulte http://docs.djangoproject.com/en/dev/ref/settings/ para obtener más información sobre settings.py


admin.py:

from django.contrib.admin import AdminSite AdminSite.site_title = ugettext_lazy(''My Admin'') AdminSite.site_header = ugettext_lazy(''My Administration'') AdminSite.index_title = ugettext_lazy(''DATA BASE ADMINISTRATION'')