Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 将类添加到<;车身>;在基础模板中?_Django_Django Templates - Fatal编程技术网

Django 将类添加到<;车身>;在基础模板中?

Django 将类添加到<;车身>;在基础模板中?,django,django-templates,Django,Django Templates,这是mybase.html的一般结构: <html> <head> </head> <body class="noscroll"> <nav class="navbar navbar-static-top navbar-dark bg-inverse"> </nav> {% block content %} {% endblock co

这是my
base.html的一般结构:

<html>
    <head>
    </head>

    <body class="noscroll">
        <nav class="navbar navbar-static-top navbar-dark bg-inverse">
        </nav>
        {% block content %}
        {% endblock content %}
    </body>
</html>

{%block content%}
{%endblock内容%}

在某些页面上,我需要
noscroll
类,它本质上是
overflow-y:hidden但我也有需要滚动的页面。我可以将导航栏移动到它自己的代码片段中并插入,但这样的方法似乎不令人满意。或者我可以制作一个单独的
base\u noscorl.html
,但这可能会导致不一致,因此我必须嵌套两个模板,这两个模板再次变得不令人满意。

只需添加一个具有默认内容的可重写块:

<body class="{% block body_class %}noscroll{% endblock %}">

然后在后续页面中,您可以扩展任一模板。您需要多少灵活性始终取决于您。

如果此块为空,是否仍要花费时间处理它?我知道这并不多,但Django在他们的文档中写下
包含
更有效就足够了:是的,仍然会有处理时间。或者,您可以在模板上下文中传递css类值,但这可能会导致高度重复。在所有这些选项中,您认为哪一个是最好的?我负责国家地理频道等大型项目,我们就是这样做的。
# noscroll.html

{% extends 'base.html' %}

{% block body_class %}{# empty to override #}{% endblock %}