如何在django模板中的块周围包装一些html?

问题描述 投票:1回答:2

我有一个像这样的基本模板(base.html):

<doctype html> etc etc
{% block content %}{% endblock %}

它被我网站上的许多其他模板使用,但我有一个第三方应用程序,它自带的模板继承自tp.html,后者继承自base.html。这些模板大多都很好,但我需要将它们的content块包装在div中。我可以更改第三方模板以使用sub_content块并像这样修改tp.html

{% extends "base.html" %}
{% block content %}
    <div class="third-party-app">
        {% block sub_content %}{% endblock %}
    </div>
{% endbock %}

但我不想修改第三方应用程序中的所有模板。

我想要的是类似于在Smarty模板中找到的{$smarty.block.child},或者达到相同的方式。有任何想法吗?

django django-templates
2个回答
2
投票

您可以像这样使用block.super:

第三方模板:

  {% block content %}
    <h1>3rd Party Content</h1>
  {% endblock %}

你的模板:

{% block content %}
  <div class="wrapper">{{ block.super }}</div>
{% endblock content %}

0
投票

在base.html中,在{%block content%}的任一侧添加pre_content和post_content块,然后在tp.html中将您的和标记添加到这些块。稍微不优雅,但它会工作,你不必修改所有模板。

© www.soinside.com 2019 - 2024. All rights reserved.