如何扩展django管理员视图?

kie*_*iak 10 django admin overwrite django-admin django-views

我想在我的django管理员索引中显示额外的侧边栏.我创造了templates/admin/index.html它并且它出现了.现在我需要一些模型数据.为此,我在文件中创建了索引函数admin/views.py

def index(request):
    var = 'var'
    return render_to_response('admin/index.html', {'var': var})
Run Code Online (Sandbox Code Playgroud)

没有这个功能我有错误ViewDoesNotExist.

但是,模板不会对此示例变量'var'做出反应.此外,我的应用程序不会显示在索引中.我只有auth应用程序.

我认为我正在覆盖索引函数表单管理视图.如何正确覆盖此功能?

Tim*_*ony 9

您可以在ModelAdmin(admin.py)类的视图中添加逻辑,而不是完全覆盖视图:

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

例如:

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)
Run Code Online (Sandbox Code Playgroud)


maw*_*awi 2

考虑使用 django 管理工具https://bitbucket.org/izi/django-admin-tools/wiki/Home

然后你会得到诸如等命令manage.py customdashboardmanage.py custommenu

它甚至有一个很好的书签功能,可以快速跳转到某些对象或列表页面。