Django 模板未加载

Django Template Aren't Loading

我正在尝试将不同的 html 文件加载到 base.html 中,但它们没有显示。有什么想法吗?

<body class="bg">
   <main class='text'>
      {% block carousel %}
      {% endblock %}

      {% block info%}
      {% endblock %}

      {% block content %}
      {% endblock %} 
           
      {% block mobile %}
      {% endblock %}
    </main>
</body>

我认为您可能混淆了模板 inheritance 和模板 composition.

在模板 继承 中,您有一个像 base.html:

这样的基页
<body class="bg">
   <main class='text'>
      {% block carousel %}
      {% endblock %}

      {% block info%}
      {% endblock %}

      {% block content %}
      {% endblock %} 
           
      {% block mobile %}
      {% endblock %}
    </main>
</body>

然后,您有第二个模板 shoes.html 扩展 base.html。它继承了 base.html 的所有 HTML,但在块中填充了一些自定义内容:

{% extends "base.html" %}

{% block carousel %}
<p>Carousel</p>
{% endblock %}

{% block info%}
<p>Info</p>
{% endblock %}

{% block content %}
<p>Content</p>
{% endblock %} 
           
{% block mobile %}
<p>Mobile</p>
{% endblock %}

因此,当您在视图中渲染它时:

views.py

from django.shortcuts import render
def index(request):
    return render(request, 'polls/shoes.html', {})

你得到这个结果:

<body class="bg">
   <main class='text'>
      <p>Carousel</p>
      <p>Info</p>
      <p>Content</p>
      <p>Mobile</p>
   </main>
</body>

我怀疑您有不同的 HTML 文件以每个块命名(例如 carousel.htmlinfo.html)。这不是 Django 的工作方式(但 Ruby on Rails 的工作方式)。那是你想做的吗?如果不是,请更新您的问题以进行澄清。