创建模块化模板的最佳方法是什么?
例如,如果我有这样的事情:
#base file:
{header}
{block content}
{footer}
#main file:
{extends base}
{block content definition}
#product file:
{extends base}
{block content definition}
这是我所理解的django方式 - 填补空白。
现在,我的问题是如果我需要这样的页面:
{header}
{main}
{product}
{footer}
基本上,main和产品都在基本文件中。我可以尝试深度继承(具有main的页面,然后连续加载产品),但这不起作用,因为文件都定义了内容',这在Django中是不可能的
答案 0 :(得分:1)
你需要做两个模板“_main.html”和“_product.html”,它们不会扩展基础,只是它们自己的内容。
之后,您可以通过包含标记https://docs.djangoproject.com/en/dev/ref/templates/builtins/#include
来使用它们#main.html file:
{% extends 'base.html' %}
{% block content %}
{% include '_main.html' %}
{% endblock %}
#product.html file:
{% extends 'base.html' %}
{% block content %}
{% include '_product.html' %}
{% endblock %}
#and what you want:
{% extends 'base.html' %}
{% block content %}
{% include '_main.html' %}
{% include '_product.html' %}
{% endblock %}
{% block footer %}
{% endblock %}