如何将数据发送到Django中的基本模板?

时间:2010-02-14 23:17:03

标签: python django django-templates

假设我有一个django网站,以及一个带有页脚的所有页面的基本模板,我想在我的网站上显示前5个产品的列表。我该如何将该列表发送到基本模板进行渲染?每个视图是否都需要将该数据发送到render_to_response?我应该使用template_tag吗?你会怎么做?

1 个答案:

答案 0 :(得分:5)

您应该使用custom context processor。有了这个你可以设置一个变量,例如top_products将在您的所有模板中提供。

E.g。

# in project/app/context_processors.py
from app.models import Product

def top_products(request):
    return {'top_products': Products.objects.all()} # of course some filter here

settings.py

TEMPLATE_CONTEXT_PROCESSORS = (
    # maybe other here
    'app.context_processors.top_products',
)

在你的模板中:

{% for product in top_products %}
    ...