django admin:带有上下文

时间:2015-06-05 07:51:43

标签: python django django-admin django-views

在django admin中,我们可以为每个应用定义自定义模板。在这种情况下,我要为我的应用程序自定义app_index.html模板。

我想在该页面上添加一些图表和其他图表。现在我已经覆盖了模板,如何覆盖相应的视图方法?

我考虑过制作自定义AdminSite并覆盖app_index()(请参阅https://github.com/django/django/blob/master/django/contrib/admin/sites.py#L511)方法,但我的django安装中有多个应用程序,所有这些应用程序都有自定义app_index.html

将上下文添加到app_index.html模板的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

不知道这是否是最佳方式,但可以使用模板完成 标签。我是这样做的:

# <app>/templatetags/erp.py
register = template.Library()
@register.assignment_tag
def erp_get_tasks ():
    return Task.objects.exclude (done=True).order_by ('priority')

# <app>/templates/admin/erp/app_index.html
{% extends "admin/app_index.html" %}
{% load erp %}
...
{% block footer %}
{% erp_get_tasks as tasks %}
{% for task in tasks %}
...