如何将数据发送到 Django 中的基本模板?
Posted
技术标签:
【中文标题】如何将数据发送到 Django 中的基本模板?【英文标题】:How can I send data to a base template in Django? 【发布时间】:2011-01-16 19:43:44 【问题描述】:假设我有一个 django 网站,以及一个包含页脚的所有页面的基本模板,我想在我的网站上显示前 5 种产品的列表。我将如何将该列表发送到基本模板进行渲染?是否每个视图都需要将该数据发送到 render_to_response?我应该使用 template_tag 吗?你会怎么做?
【问题讨论】:
虽然我已经回答过了,但是之前有人问过这个问题:***.com/questions/1030249/…,***.com/questions/2223429/… 【参考方案1】:您应该使用custom context processor。有了这个,你可以设置一个变量,例如top_products
将在您的所有模板中可用。
例如
# 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 %
...
【讨论】:
我会试试看的。听起来就像我要找的一样。 只是一个余数。添加上下文处理器的过程在 Django 的更高版本中进行了更改。 OP的任务也可以根据这个问题的接受答案得到满足 - ***.com/questions/34902707/…以上是关于如何将数据发送到 Django 中的基本模板?的主要内容,如果未能解决你的问题,请参考以下文章
Django 2.0:将数据从视图发送到包含在另一个模板中的模板(2 个不同的应用程序)
将对象发送到Django中{%include%}标记中的子模板