Django-使用'include'传递数据

时间:2018-09-05 07:05:05

标签: python django

我是Django的新手,这是我想要做的:我想拥有一个包含导航的base.html。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>title</title>
</head>
<body>
    {% include 'nav.html' %}
    {% block content %}{% endblock %}
</body>
</html>

非常简单,但是:导航应该使它自己的内容具有灵活性,因为我想稍后添加cms。

  <nav class="nav">
    {% for item in sites %}
      <a class="nav__item" href="{{ item.href.value }}">{{ item.label }}</a>
    {% endfor %}
  </nav>

我有一个index.html的呈现方法(它只是扩展了base.html并添加了用于测试目的的h1标签)

def home_view(request, *args, **kwargs):
    opts = {
      'sites': [
        {
          'href': {
            'value': '/someurl'
          },
          'label': 'Some Label'
        },
        {
          'href': {
            'value': '/lorem'
          },
          'label': 'Lorem Ipsum'
        },
        {
          'href': {
            'value': '/contact'
          },
          'label': 'Contakt'
        }
      ]
    }

    return render(request, 'index.html', opts)

但是如果我运行本地服务器,我的内容将无法传递。

1 个答案:

答案 0 :(得分:-1)

您应该在{% include "nav.html" %}标记内使用{% block content %}
否则它将不会显示。