【问题标题】:Django - passing flatpage.title variable as part of an includeDjango - 将 flatpage.title 变量作为包含的一部分传递
【发布时间】:2017-04-18 15:37:18
【问题描述】:

我正在使用 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}} 即。 'home' 它工作得很好。

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

我不能这样做吗?

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

<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】:

    您不需要在模板标签中的 {{ }} 括号中包含参数。

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

    以下应该有效:

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

    查看include部分了解更多信息

    【讨论】:

    • 是的,你是对的。我本可以发誓我尝试过这个,但我猜不正确。也感谢您提供文档链接。
    猜你喜欢
    • 2019-01-19
    • 2020-01-06
    • 2011-08-21
    • 2011-05-30
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    相关资源
    最近更新 更多