【问题标题】:Not able to load multiple blocks in base template in Django无法在 Django 的基本模板中加载多个块
【发布时间】:2021-06-15 11:10:24
【问题描述】:

我的模板有问题。我正在尝试在基本模板中添加两个块, 当我包含它们时它可以工作,但是当我尝试扩展基本模板时它不会工作,甚至不会抛出错误。

【问题讨论】:

  • 您检查控制台是否有任何错误?
  • 是的,但没有错误,您能否更具体地说明我应该在控制台中查找的内容
  • 任何与缺少的元素相关的内容...请同时发布包含的 html 的内容和您没有得到它的扩展页面

标签: python-3.x django django-templates


【解决方案1】:

这应该是问题所在......我也会留下原始答案的链接

将包含块移动到指定块中

另一种包含语句会失败而不引发错误的情况是,如果您正在使用扩展另一个模板的模板,并且您的包含位于命名块之外:

{% extends "my_base.html" %}

{% block content %}
    {{ block.super }}
    {% include "partials/file1.html" %}
{% endblock %}

{% include "partials/file2.html" %}

在这种情况下,file2.html 不会被包含,因为它不在一个块中,并且您不会收到任何警告消息,并且会在您意识到自己所做的事情之前尝试各种事情。

Include tags not working

【讨论】:

  • 我正在尝试扩展我的基本模板并使用多个块,但 django 只是填充块内容,其他所有内容都被跳过
  • 尝试包含带有完整 url 路径而不是短路径的模板
【解决方案2】:

我的 Django 版本:2.2

对于所有试图弄清楚如何声明多个块的人来说,即使 base 只有一个 {% block content %},

你可以在块内声明块

这是我的 base.html:

{% block content %}
{% endblock %}

这是我的 home.html:

{% block content %}
   {% extends 'base.html' %}
   Some common content I want
   {% block my_variable_data %}
   {% endblock %}
{% endblock %}

我的其他页面:

{% extends 'home.html' %}
{% block data_content %}
{% endblock %}

【讨论】:

    猜你喜欢
    • 2016-03-11
    • 2015-11-10
    • 2021-04-08
    • 2015-03-06
    • 2018-04-16
    • 1970-01-01
    • 2019-07-16
    • 2011-10-04
    • 2017-08-01
    相关资源
    最近更新 更多