kierzniak
kierzniak

Reputation: 606

How to extend django admin view?

i want to display additional sidebar in my django admin index. I have created templates/admin/index.html and it show up. Now i need some data from model. To do this I have created index function in the file admin/views.py

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

Without this function I have error ViewDoesNotExist.

However template not react for this sample variable 'var'. Moreover my app doesn't display in the index. I have only auth app.

I think that I'm overwriting index function form admin view. How to properly overwrite this function?

Upvotes: 10

Views: 10031

Answers (2)

mawimawi
mawimawi

Reputation: 4333

Consider using django admin tools https://bitbucket.org/izi/django-admin-tools/wiki/Home

then you get commands like manage.py customdashboard, manage.py custommenu etc.

It even has a nice bookmark-functionality to quickliy jump to certain objects or list pages.

Upvotes: 2

Timmy O'Mahony
Timmy O'Mahony

Reputation: 53981

Instead of overwriting the view entirely, you can add logic to the views in your ModelAdmin (admin.py) class:

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

so for example:

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)

Upvotes: 10

Related Questions