<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://es.wikieducator.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
		<id>https://es.wikieducator.org/index.php?action=history&amp;feed=atom&amp;title=Curso_Python_DGA_2011%2Fdjango%2Fadmin</id>
		<title>Curso Python DGA 2011/django/admin - Historial de revisiones</title>
		<link rel="self" type="application/atom+xml" href="https://es.wikieducator.org/index.php?action=history&amp;feed=atom&amp;title=Curso_Python_DGA_2011%2Fdjango%2Fadmin"/>
		<link rel="alternate" type="text/html" href="https://es.wikieducator.org/index.php?title=Curso_Python_DGA_2011/django/admin&amp;action=history"/>
		<updated>2026-06-19T05:24:01Z</updated>
		<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
		<generator>MediaWiki 1.23.14</generator>

	<entry>
		<id>https://es.wikieducator.org/index.php?title=Curso_Python_DGA_2011/django/admin&amp;diff=5229&amp;oldid=prev</id>
		<title>Lmorillas en 12:52 24 ago 2011</title>
		<link rel="alternate" type="text/html" href="https://es.wikieducator.org/index.php?title=Curso_Python_DGA_2011/django/admin&amp;diff=5229&amp;oldid=prev"/>
				<updated>2011-08-24T12:52:24Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revisión de 12:52 24 ago 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 202:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 202:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Edita la plantilla. La pantilla tiene textos como &amp;lt;nowiki&amp;gt; {% block branding %} y {{ title }} Esas etiquetas {% y {{&amp;lt;/nowiki&amp;gt; son parte del elenguaje de plantillas de Django. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Edita la plantilla. La pantilla tiene textos como &amp;lt;nowiki&amp;gt; {% block branding %} y {{ title }} Esas etiquetas {% y {{&amp;lt;/nowiki&amp;gt; son parte del elenguaje de plantillas de Django. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Astute readers will ask: But if TEMPLATE_DIRS was empty by default, how was Django finding the default admin templates? The answer is that, by default, Django automatically looks for a templates/ subdirectory within each app package, for use as a fallback. See the template loader documentation for full information.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Configurar la página índice===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Configurar la página índice===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Por defecto aparecen todas las aplicaciones de INSTALLED_APPS por orden alfabético. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Por defecto aparecen todas las aplicaciones de INSTALLED_APPS por orden alfabético. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Para eso hay que cambiar la plantilla '''admin/index.html'''. En lugar de usar la variable '''app_list''', puedes forzar las aplicaciones como quieras.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Para eso hay que cambiar la plantilla '''admin/index.html'''. En lugar de usar la variable '''app_list''', puedes forzar las aplicaciones como quieras.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lmorillas</name></author>	</entry>

	<entry>
		<id>https://es.wikieducator.org/index.php?title=Curso_Python_DGA_2011/django/admin&amp;diff=5217&amp;oldid=prev</id>
		<title>Lmorillas: Página creada con '== El poderoso Admin de Django == * El Admin es una herramienta pensada para el &quot;backend&quot;, no para el acceso de los usuarios * Simplifica la tarea de insertar, modificar y elimi…'</title>
		<link rel="alternate" type="text/html" href="https://es.wikieducator.org/index.php?title=Curso_Python_DGA_2011/django/admin&amp;diff=5217&amp;oldid=prev"/>
				<updated>2011-08-24T09:44:00Z</updated>
		
		<summary type="html">&lt;p&gt;Página creada con &amp;#039;== El poderoso Admin de Django == * El Admin es una herramienta pensada para el &amp;quot;backend&amp;quot;, no para el acceso de los usuarios * Simplifica la tarea de insertar, modificar y elimi…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== El poderoso Admin de Django ==&lt;br /&gt;
* El Admin es una herramienta pensada para el &amp;quot;backend&amp;quot;, no para el acceso de los usuarios&lt;br /&gt;
* Simplifica la tarea de insertar, modificar y eliminar contenido de la web.&lt;br /&gt;
=== Activar el Admin ===&lt;br /&gt;
* Por defecto está desactivado.&lt;br /&gt;
* Añade '''django.contrib.admin''' a la lista de '''INSTALLED_APPS''' en  '''settings.py'''.&lt;br /&gt;
* Ejecuta&lt;br /&gt;
 $ python manage.py syncdb&lt;br /&gt;
&lt;br /&gt;
{{Tip|Siempre que añadimos una nueva aplicación hay que actualizar la base de datos}}&lt;br /&gt;
* Edita el fichero '''urls.py''' de tu proyecto y descomenta las líneas que hacen referencia al admin (3 líneas en total)&lt;br /&gt;
El fichero tiene que quedar al final algo así:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS&amp;quot; highlight=&amp;quot;4, 5, 16&amp;quot;&amp;gt;&lt;br /&gt;
from django.conf.urls.defaults import patterns, include, url&lt;br /&gt;
&lt;br /&gt;
# Uncomment the next two lines to enable the admin:&lt;br /&gt;
from django.contrib import admin&lt;br /&gt;
admin.autodiscover()&lt;br /&gt;
&lt;br /&gt;
urlpatterns = patterns('',&lt;br /&gt;
    # Examples:&lt;br /&gt;
    # url(r'^$', 'sitio_encuestas.views.home', name='home'),&lt;br /&gt;
    # url(r'^sitio_encuestas/', include('sitio_encuestas.foo.urls')),&lt;br /&gt;
&lt;br /&gt;
    # Uncomment the admin/doc line below to enable admin documentation:&lt;br /&gt;
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),&lt;br /&gt;
&lt;br /&gt;
    # Uncomment the next line to enable the admin:&lt;br /&gt;
    url(r'^admin/', include(admin.site.urls)),&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Lanzar Admin ===&lt;br /&gt;
 $ python manage.py runserver&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ curl http://127.0.0.1:8000/admin/ -I&lt;br /&gt;
HTTP/1.0 200 OK&lt;br /&gt;
Date: Tue, 23 Aug 2011 15:33:25 GMT&lt;br /&gt;
Server: WSGIServer/0.1 Python/2.7.1+&lt;br /&gt;
Last-Modified: Tue, 23 Aug 2011 15:33:25 GMT&lt;br /&gt;
Expires: Tue, 23 Aug 2011 15:33:25 GMT&lt;br /&gt;
Content-Type: text/html; charset=utf-8&lt;br /&gt;
Vary: Cookie&lt;br /&gt;
Cache-Control: max-age=0&lt;br /&gt;
Set-Cookie:  csrftoken=b53bd036b15251d45ed07b15c60e5116; expires=Tue, 21-Aug-2012 15:33:25 GMT; Max-Age=31449600; Path=/&lt;br /&gt;
Set-Cookie:  sessionid=2d639f8c86e4e380698c1991fec9d848; expires=Tue, 06-Sep-2011 15:33:25 GMT; Max-Age=1209600; Path=/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Tip| ¿Ves la diferencia entre el comando anterior y el siguiente?}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
HTTP/1.0 301 MOVED PERMANENTLY&lt;br /&gt;
Date: Tue, 23 Aug 2011 15:35:12 GMT&lt;br /&gt;
Server: WSGIServer/0.1 Python/2.7.1+&lt;br /&gt;
Content-Type: text/html; charset=utf-8&lt;br /&gt;
Location: http://127.0.0.1:8000/admin/&lt;br /&gt;
&lt;br /&gt;
HTTP/1.0 200 OK&lt;br /&gt;
Date: Tue, 23 Aug 2011 15:35:12 GMT&lt;br /&gt;
Server: WSGIServer/0.1 Python/2.7.1+&lt;br /&gt;
Last-Modified: Tue, 23 Aug 2011 15:35:12 GMT&lt;br /&gt;
Expires: Tue, 23 Aug 2011 15:35:12 GMT&lt;br /&gt;
Content-Type: text/html; charset=utf-8&lt;br /&gt;
Vary: Cookie&lt;br /&gt;
Cache-Control: max-age=0&lt;br /&gt;
Set-Cookie:  csrftoken=3365df1f4fc610f6d4e9a7ea5f5d97b2; expires=Tue, 21-Aug-2012 15:35:12 GMT; Max-Age=31449600; Path=/&lt;br /&gt;
Set-Cookie:  sessionid=1206648ff52d951049b0d830e66a12d9; expires=Tue, 06-Sep-2011 15:35:12 GMT; Max-Age=1209600; Path=/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puedes probar la dirección en el navegador: '''http://127.0.0.1:8000/admin/'''&lt;br /&gt;
&lt;br /&gt;
==== Usuarios ====&lt;br /&gt;
Tendrás que entrar con el '''superurser''' que creaste la hacer '''syncdb'''. &lt;br /&gt;
Si no recuerdas, puedes crear otro superusuario:&lt;br /&gt;
 $ python manage.py createsuperuser&lt;br /&gt;
&lt;br /&gt;
===Hacer el proyecto modificable por el Admin===&lt;br /&gt;
La aplicación Encuestas no aparece. Hay que activarla dentro del admin:&lt;br /&gt;
&lt;br /&gt;
* Crea un fichero '''admin.py''' dentro de la aplicación encuestas con este contenido:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS&amp;quot;&amp;gt;&lt;br /&gt;
from encuestas.models import Encuesta&lt;br /&gt;
from django.contrib import admin&lt;br /&gt;
&lt;br /&gt;
admin.site.register(Encuesta)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Reinicia el servidor de desarrollo. El servidor no detecta la creación de un nuevo archivo.&lt;br /&gt;
&lt;br /&gt;
Se ha creado un completo entorno [http://es.wikipedia.org/wiki/CRUD CRUD] para nuestras encuestas:&lt;br /&gt;
* Se genera un formulario automático para el modelo&lt;br /&gt;
* Incluye validación de campos&lt;br /&gt;
&lt;br /&gt;
=== Configuración del formulario ===&lt;br /&gt;
La configuración se hace mediante el archivo '''admin.py''' creado. &lt;br /&gt;
* Preparamos una clase especial para las encuestas ('''EncuestaAdmin''')&lt;br /&gt;
* Indicamos a admin que use esa clase para gestionar nuestro modelo&lt;br /&gt;
 admin.site.register(Encuesta, EncuestaAdmin)&lt;br /&gt;
&lt;br /&gt;
Vamos a cambiar el orden en que aparecen los datos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS&amp;quot;&amp;gt;&lt;br /&gt;
# -*-coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
from encuestas.models import Encuesta&lt;br /&gt;
from django.contrib import admin&lt;br /&gt;
&lt;br /&gt;
class EncuestaAdmin(admin.ModelAdmin):&lt;br /&gt;
    fieldsets = [&lt;br /&gt;
        (None,               {'fields': ['pregunta']}),&lt;br /&gt;
        ('Publicación', {'fields': ['fecha_pub']}),&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
admin.site.register(Encuesta, EncuestaAdmin)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se pueden asignar clases html a cada fielset para personalizar la prsentación. Django ofrece una clase '''collapse''' que muestra el fielset sin expandir por defecto. Útil cuando hay que distribuir muchos contenidos.&lt;br /&gt;
&lt;br /&gt;
class PollAdmin(admin.ModelAdmin):&lt;br /&gt;
    fieldsets = [&lt;br /&gt;
        (None,               {'fields': ['question']}),&lt;br /&gt;
        ('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
=== Añadir objetos relacionados ===&lt;br /&gt;
Nuestro Admin todavía no muestra las opciones para las encuestas.&lt;br /&gt;
Tenemos dos opciones:&lt;br /&gt;
* Registrar Opcion con el admin como hemos hecho con las Encuestas&lt;br /&gt;
 from polls.models import Choice&lt;br /&gt;
 &lt;br /&gt;
 admin.site.register(Choice)&lt;br /&gt;
&lt;br /&gt;
: Admin crea de forma automática un '''&amp;lt;select&amp;gt; box''' para la clave foránea, que incluye todas las encuestas de la base de datos.&lt;br /&gt;
* Podemos crear las Opciones desde la misma encuesta. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS&amp;quot;&amp;gt;&lt;br /&gt;
from encuestas.models import Encuesta, Opcion&lt;br /&gt;
from django.contrib import admin&lt;br /&gt;
&lt;br /&gt;
class OpcionInline(admin.TabularInline):&lt;br /&gt;
    model = Opcion&lt;br /&gt;
    extra = 3&lt;br /&gt;
&lt;br /&gt;
class EncuestaAdmin(admin.ModelAdmin):&lt;br /&gt;
    fieldsets = [&lt;br /&gt;
        (None,               {'fields': ['pregunta']}),&lt;br /&gt;
        ('Publicación', {'fields': ['fecha_pub'], 'classes': ['collapse']}),&lt;br /&gt;
    ]&lt;br /&gt;
    inlines = [OpcionInline]&lt;br /&gt;
&lt;br /&gt;
admin.site.register(Encuesta, EncuestaAdmin)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Con el inline indicamos a Django que los objetos Opcion se editan en la página de administración de Encuestas y que por defecto añade los campos suficientes para añadir 3 Opciones más.&lt;br /&gt;
&lt;br /&gt;
Admin ofrece dos tipos de inlines: StackedInline y TabularInline.&lt;br /&gt;
&lt;br /&gt;
=== Modificar la página de listados ===&lt;br /&gt;
La página inicial muestra el listado de todas las Encuestas del sistema. Por defecto Django muestra el str() de cada objeto. Pero es más usable mostrar campos individuales. Useremos la opción '''list_display''', que es una tupla de nombres de campos (también podemos añadir los métodos creados).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS&amp;quot;&amp;gt;&lt;br /&gt;
class EncuestaAdmin(admin.ModelAdmin):&lt;br /&gt;
    # ...&lt;br /&gt;
    list_display = ('pregunta', 'fecha_pub', 'publicada_hoy')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podemos especificar el nombre de la columna:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS&amp;quot;&amp;gt;&lt;br /&gt;
    def publicada_hoy(self):&lt;br /&gt;
        return self.fecha_pub.date() == datetime.date.today()&lt;br /&gt;
    publicada_hoy.short_description = '¿Publicada hoy?'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Filtros ====&lt;br /&gt;
Añade a EncuestaAdmin&lt;br /&gt;
 list_filter = ['fecha_pub']&lt;br /&gt;
&lt;br /&gt;
Añade una columna de '''filgro''' que permite filtrar los listados por el campo de fecha de publicación. El filtro se muestra según el tipo del campo de filtrado.&lt;br /&gt;
&lt;br /&gt;
==== Búsqueda ====&lt;br /&gt;
 search_fields = ['pregunta']&lt;br /&gt;
Añade una caja de búsqueda en la parte superior de los listados. Usa '''LIKE''' en las búsquedas.&lt;br /&gt;
&lt;br /&gt;
==== Fechas ====&lt;br /&gt;
Como las encuestas tienen un campo con fechas podemos facilitar la navegación cronológica:&lt;br /&gt;
 date_hierarchy = 'fecha_pub'&lt;br /&gt;
&lt;br /&gt;
==== Paginación ====&lt;br /&gt;
  list_per_page = 100&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Personalizar la presentación ===&lt;br /&gt;
No tiene sentido ver '''&amp;quot;Django administration&amp;quot;''' en la parte superior de las páginas.&lt;br /&gt;
&lt;br /&gt;
Es fácil cambiar usando el sistema de plantillas de Django:&lt;br /&gt;
&lt;br /&gt;
* Configura TEMPLATE_DIRS (tupla de rutas donde busca plantillas Django) en el fichero '''settings.py'''. &lt;br /&gt;
&lt;br /&gt;
  TEMPLATE_DIRS = (&lt;br /&gt;
      &amp;quot;/home/my_username/mytemplates&amp;quot;, # configura la ruta: rutas absolutas.&lt;br /&gt;
  )&lt;br /&gt;
* Copia la plantilla '''admin/base_site.html''' del directorio de plantillas de Django''(django/contrib/admin/templates)''' a un directorio '''admin''' dentro de una de las rutas que has configurado en el paso anterior. Por ejemplo, si la ruta era '''/home/mi_usuario/sitio_encuestas/plantillas''', habrá que copiar la plantilla como '''/home/my_username/sitio_encuestas/plantillas/admin/base_site.html'''&lt;br /&gt;
&lt;br /&gt;
* Edita la plantilla. La pantilla tiene textos como &amp;lt;nowiki&amp;gt; {% block branding %} y {{ title }} Esas etiquetas {% y {{&amp;lt;/nowiki&amp;gt; son parte del elenguaje de plantillas de Django. &lt;br /&gt;
&lt;br /&gt;
Astute readers will ask: But if TEMPLATE_DIRS was empty by default, how was Django finding the default admin templates? The answer is that, by default, Django automatically looks for a templates/ subdirectory within each app package, for use as a fallback. See the template loader documentation for full information.&lt;br /&gt;
&lt;br /&gt;
=== Configurar la página índice===&lt;br /&gt;
Por defecto aparecen todas las aplicaciones de INSTALLED_APPS por orden alfabético. &lt;br /&gt;
Para eso hay que cambiar la plantilla '''admin/index.html'''. En lugar de usar la variable '''app_list''', puedes forzar las aplicaciones como quieras.&lt;/div&gt;</summary>
		<author><name>Lmorillas</name></author>	</entry>

	</feed>