gpt4 book ai didi

Django 模板 - 显示 {% block %} 标记之前的 if 语句无法正常工作?

转载 作者:行者123 更新时间:2023-12-02 21:37:23 25 4
gpt4 key购买 nike

这是我的基本 html 页面,我的其他 html 页面是从它扩展而来的(称为 base.html):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

<head>
<title>Django Bookmarks | {% block title %}{% endblock %}</title>
<link rel='stylesheet' type='text/css' href='/site_media/css/style.css' />
</head>

<body>

{% block header %}
<p> signed in! </p>
{% endblock %}

{% block content %}{% endblock %}

</body>

</html>

现在,这是我的主页。

{% extends "base.html" %}

{% block title %} Title {% endblock %}

{% if user.username %}
{% else %}
{% block header %}{% endblock %}
{% endif %}

{% block content %}
{% if user.username %}
<p>Welcome {{ user.username }}.</p>
{% else %}
<p>Not Signed in</p>
{% endif %}
{% endblock %}

如你所见,我想要我的

{% block header %}{% endblock %}

如果没有用户登录,则为空,但如果有用户登录,我想要

{% block header %}

继承自base.html。但是,即使用户登录,它也不会继承自 base.html。当用户登录时,标题 block 不会显示。知道为什么吗?

最佳答案

使用block.super:

{% block header %}
{% if user.username %}
{{ block.super }}
{% else %}
{# empty #}
{% endif %}
{% endblock %}

根据Django template documentation :

If you need to get the content of the block from the parent template, the {{ block.super }} variable will do the trick. This is useful if you want to add to the contents of a parent block instead of completely overriding it. .....

关于Django 模板 - 显示 {% block %} 标记之前的 if 语句无法正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21083435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com