我有一个简单的导航栏base.html,其中包含指向其他页面的链接。目前,我正在扩展我所有其他页面上的base.html模板。我想从天气API调用GET请求,以便显示简单的信息,如城市名称和当前温度,并将其显示在导航栏上。由于base.html模板没有链接到视图本身,所以我不确定如何实现。我已经成功地从API中获得了信息,并在测试页面中显示了这些信息。
base.html:
<body>
<div class="container-fluid bg-light">
<div class="d-flex flex-wrap align-items-center justify-content-center justify-content-lg-start">
<i class="far fa-newspaper fa-5x"></i>
<a href="{% url 'news_list:homepage' %}" class="nav-link link-dark display-4">Ziņu portāls</a>
<ul class="nav align-items-center ms-auto me-auto">
<li><a href="{% url 'news_list:all_posts' %}" class="nav-link link-dark pt-4"><h2>Visi raksti</h2></a></li>
<li><a href="{% url 'news_list:new_post' %}" class="nav-link link-dark pt-4"><h2>Pievienot rakstu</h2></a></li>
<li><h2>Information from API</h2></a></li>
</ul>
</div>
<hr/>
</div>
{% block content %}{% endblock content %}
</body>发布于 2021-04-20 10:34:23
发布于 2021-04-20 10:40:01
创建模板上下文处理器,如这个答案中所示
然后,您将希望将其呈现到base.html中,以便应用于应用程序中的所有模板。
发布于 2021-04-20 10:51:05
尝试自定义模板标记。所涉步骤:
templatetags创建与视图相同级别的目录__init__.pytemplatetags中创建一个名为make_get_request.py的文件from django import template
register = template.Library()
@register.filter(name = 'get_request')
def get_request():
#make your request here
#return a list, dict etc. with the info you need{% load make_get_requests %},即文件名。{% get_request %}https://stackoverflow.com/questions/67177026
复制相似问题