把一个块放在另一个Django中

问题描述:

我有一个Django模板,我想在多个地方扩展。在某些div中必须在表格内,而在其他情况下则不能。为了做到这一点,我把一个区块放在div的上面和下面,所以我可以分别添加它们。把一个块放在另一个Django中

期望:

<form> 
<div class="my_div"> 
    {% block div_content %} 
    ... 
    {% endblock %} 
</div> 
</form> 

模板:

{% block div_top %}{% endblock %} 
<div class="my_div"> 
    {% block div_content %} 
    {% endblock %} 
</div> 
{% block div_bottom %}{% endblock %} 

望着这我不禁认为有更好的方式来做到这一点。 Django的标准做法是什么?

使用多个基本模板是我见过几个团队使用的解决方案。例如,您可能只需添加一个名为“base_with_form.html”的额外基本模板。需要表单的模板扩展了这个基本模板。

帮助我的一件事就是考虑以类似于Python包的方式布置模板目录。我通常包括每个目录的base.html(ala init .py),即使它只是一个占位符。每个基本文件在其父目录中扩展一个基本文件。通过添加本地base.html的副本并进行所需的更改,可以实现同一目录中多个模板的其他风格特化。

例:

templates/ 
    base.html 
    index.html (extends "base.html") 
    accounts/ 
    base.html (extends "base.html") 
    affiliate_base.html (extends "base.html") 
    my_account.html (extends "accounts/base.html") 
    affiliate_dashboard.html (extends "accounts/affiliate_base.html") 
    vips/ 
     base.html (extend "accounts/base.html") 
     vip_lounge.html (extends "accounts/vips/base.html")