2011-10-21 11 views
9

Voglio visualizzare la barra laterale aggiuntiva nel mio indice admin django. Ho creato templates/admin/index.html e viene visualizzato. Ora ho bisogno di alcuni dati dal modello. Per fare questo ho creato la funzione di indice nel file admin/views.pyCome estendere la visualizzazione admin di django?

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

Senza questa funzione ho errore ViewDoesNotExist.

Tuttavia il modello non reagisce per questa variabile di esempio 'var'. Inoltre la mia app non viene visualizzata nell'indice. Ho solo l'app di autenticazione.

Penso che sto sovrascrivendo il modulo di funzione indice visualizzazione admin. Come sovrascrivere correttamente questa funzione?

risposta

2

Considerare l'utilizzo strumenti di amministrazione di django https://bitbucket.org/izi/django-admin-tools/wiki/Home

quindi si ricevono comandi come manage.py customdashboard, manage.py custommenu ecc.

Ha anche una bella funzionalità di segnalibro per saltare rapidamente a determinati oggetti o pagine di elenco.

8

Invece di sovrascrivere la vista del tutto, è possibile aggiungere la logica per i punti di vista nel vostro ModelAdmin (admin.py) classe:

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

così per esempio:

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

Buona idea tranne: add_view - "Vista Django per la pagina di aggiunta dell'istanza del modello." Voglio accedere ai dati nella pagina indice non esiste un metodo index_view – motivast