Django - 将 flatpage.title 变量作为 include 的一部分传递

Django - passing flatpage.title variable as part of an include

提问人:jayuu 提问时间:12/4/2016 更新时间:12/4/2016 访问量:197

问:

我正在使用 Django 平面页面并尝试将平面页面的标题作为 html 包含的一部分传递。

{% block navbar %}
  {% include 'navbar.html' with active='{{flatpage.title}}' %}
{% endblock %}

这样我就可以在导航栏中突出显示行踪。

<ul class="nav navbar-nav">
  <li class="{% if active == 'home' %}active{% endif %}"><a href="{% url 'home' %}">Home</a></li>
  etc.
</ul>

它似乎无法正确呈现。而如果我用硬编码值替换{{flatpage.title}},即。“家”它工作得很好。

{% block navbar %}
  {% include 'navbar.html' with active='home' %}
{% endblock %}

我不能这样做吗?

我不清楚调试 Django 模板以检查这些值的方法......我目前检查变量是否传递了正确的值,只是在其他地方引用{{flatpages.title}},分别在html中 - 这似乎呈现了我所期望的正确的“home”值。

<div id="navbar" class="navbar-collapse collapse">
  <ul class="nav navbar-nav">
     <li class="{% if active == 'home' %}active{% endif %}"><a href="{% url 'home' %}">Home</a></li>
     {{flatpage.title}}
     etc.
  </ul>
</div>
django django-flatpages

评论


答:

1赞 Messaoud Zahi 12/4/2016 #1

您不需要将参数括在模板标记的 {{ }} 括号中。

如果它是变量,而不是字符串,则不要使用 “” 引号。

以下方法应该有效:

 {% block navbar %}
   {% include 'navbar.html' with active=flatpage.title %}
 {% endblock %}

有关详细信息,请参阅“包含”部分

评论

0赞 jayuu 12/4/2016
是的,你是对的。我可以发誓我试过这个,但我想不合适。也感谢您提供文档链接。