2011-10-21 15 views
9

quiero mostrar una barra lateral adicional en mi índice de administrador django. Creé templates/admin/index.html y aparece. Ahora necesito algunos datos del modelo. Para ello he creado función de índice en el archivo admin/views.py¿Cómo extender la vista de administración de django?

def index(request): 
    var = 'var' 
    return render_to_response('admin/index.html', {'var': var}) 

Sin esta función Tengo error ViewDoesNotExist.

Sin embargo, la plantilla no reacciona para esta variable de muestra 'var'. Además, mi aplicación no se muestra en el índice. Solo tengo la aplicación de autenticación.

Creo que estoy sobreescribiendo el formulario de función de índice vista de administrador. ¿Cómo sobrescribir correctamente esta función?

Respuesta

2

Considere el uso Herramientas de administración de django https://bitbucket.org/izi/django-admin-tools/wiki/Home

entonces usted obtiene comandos como manage.py customdashboard, manage.py custommenu etc.

Incluso tiene una buena funcionalidad de marcador para saltar rápidamente a ciertos objetos o páginas de la lista.

8

En lugar de sobrescribir la vista por completo, se puede añadir lógica a las vistas en su ModelAdmin (admin.py) Clase:

https://docs.djangoproject.com/en/dev/ref/contrib/admin/#other-methods

así por ejemplo:

class MyAdmin(admin.ModelAdmin) 
    ... 
    def add_view(self, request, form_url='', extra_context=None): 
     # Do some extra queries that will get passed to the template 
     c = {'x':SomeModel.objects.all()} 
     super(MyAdmin, self).add_view(request, extra_context=c) 
+1

Buena idea pero: add_view - "Vista de Django para la página de adición de instancia de modelo". Quiero acceder a los datos en la página de índice no hay un método index_view – motivast

Cuestiones relacionadas