我想在我的django管理员索引中显示额外的侧边栏。我创建了templates/admin/index.html
并且它出现了。现在我需要一些模型数据。为此,我在文件admin/views.py
def index(request):
var = 'var'
return render_to_response('admin/index.html', {'var': var})
如果没有此功能,我会收到错误ViewDoesNotExist
。
但是模板不会对此示例变量'var'做出反应。此外,我的应用程序不会显示在索引中。我只有auth应用程序。
我认为我正在覆盖索引函数表单管理视图。如何正确覆盖此功能?
答案 0 :(得分:8)
您可以在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)
答案 1 :(得分:2)
考虑使用django管理工具https://bitbucket.org/izi/django-admin-tools/wiki/Home
然后你会得到manage.py customdashboard
,manage.py custommenu
等命令。
它甚至还有一个很好的书签功能,可以快速跳转到某些对象或列表页面。