【问题标题】:Django set default value with includeDjango 使用包含设置默认值
【发布时间】:2018-10-26 21:54:57
【问题描述】:

我有我的基本 html:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>default value</title>
        <meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'>
    </head>

<body >

    {% block content %}{% endblock %}

</body>
</html>

我有我的模板:

{% extends "base.html" %}

{% block content %}

我希望能够重写 &lt;head&gt; 标签。如果不存在头部内容,则使用默认头部标签。我该怎么做呢?例如,在某些页面上,我想使用额外的元标记和不同的标题。但是如果没有指定&lt;head&gt; 标签,我需要默认的标题和元标签

【问题讨论】:

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


    【解决方案1】:

    {% block %}{% endblock %} 中包含base template 的某些部分,您实际上有一些默认内容。

    <head>
        <meta charset="UTF-8">
        <title>{% block title %}default value{% endblock title %}</title>
        {% block meta %} <!-- default meta -->
        <meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'>
        {% endblock %}
    </head>
    

    当你扩展你的base.html时,你只需要调用这些块..

    如果您想覆盖这些标签之一,只需调用该标签:

    {% block title %}I destroy the default title {% endblock %}
    {% block meta %}I destroy the default tag {% endblock %}
    

    【讨论】:

    • 如果我想要一个默认的元标记,但又想重写它怎么办?
    • 您可以添加一个新块.. {% block default_tag %}{% endblock %} 例如......当您扩展 html 时,您调用它来覆盖其内容
    • 您能否更新答案以向我展示如何添加默认元标记并在必要时替换它的示例?
    猜你喜欢
    • 2013-06-11
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-20
    相关资源
    最近更新 更多