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