gpt4 book ai didi

django - 从每个 View 将参数传递给 base.html

转载 作者:行者123 更新时间:2023-12-05 09:15:58 24 4
gpt4 key购买 nike

我在 base.html 中有这样一个顶部导航栏

<div class='section-topbar'>
<div class="row">
<nav class="col-md-12">
<ul class="nav nav-tabs nav-justified">
{% for sec in sections %} {% if sec == current_section %}
<li class="active">
<a href="/article/list/{{ current_section.id }}">{{ current_section.name }}</a>
</li>
{% else %}
<li>
<a href="/article/list/{{ sec.id }}">{{ sec.name }}</a>
</li>
{% endif %} {% endfor %}
<br class="cbt">
</ul>
</nav>
</div> <!--first row-->
</div>

它旨在呈现在每个页面上,并从 View 中检索两个上下文参数 sectionscurrent_section

context = {"page":page,
"current_section": section,
"sections": sections,}
return render(request, "article/article_list.html", context)

所以我必须将额外的参数从每个 View 传递给模板,

是否可以一次性通过它们并在全局范围内启用它们?

最佳答案

编写您自己的 context_processor,它将在每个 View 的上下文中注入(inject)给定的变量,并且它们将在每个模板中可用。

# myproject/myapp/context_processors.py

def sections_processor(request):
# do something ...
# then return your variables
return {'sections': sections, 'current_section': section}

您需要在设置文件中注册此上下文处理器,以便 Django 运行它:

# myproject/myproject/settings.py

TEMPLATES = [{
'OPTIONS': {
'context_processors': [
...
'myappp.context_processors.sections_processor',
]
}
}]

关于django - 从每个 View 将参数传递给 base.html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51304437/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com