【发布时间】:2021-10-08 11:35:23
【问题描述】:
我对 Django 很陌生,在我的应用程序中,我在顶部有一个动态导航栏。上下文作为上下文传入。想象一下它看起来像这样:
<ul>
{% for link in links %}
<li><a href="{{ link }}"></a></li>
{% endif %}
</ul>
视图可能如下所示:
def nav_links():
# Display links to first 5 MyModel objects
objects = MyModel.objects.all()[:5]
return [o.get_absolute_url() for o in objects]
def index(request):
return render("request", "app/index.html", context={"links": nav_links()})
def page1(request)
some_data = ...
return render("request", "app/page1.html", context={"links": nav_links(), "data": some_data})
def page2(request)
return render("request", "app/page2.html", context={"links": nav_links()})
...
目前,我需要在每个视图中传递 links 作为上下文。这显然是糟糕的设计。
有没有办法为所有视图传递相同的上下文?
【问题讨论】:
-
确实如此 - 谢谢!给他人的便条;相关问题中接受的答案未针对 Django 3 更新。(只是 context_processors 注册方式的不同 - 概念相同)
标签: django