use*_*875 2 django inheritance django-templates
这是我的其他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>
Run Code Online (Sandbox Code Playgroud)
现在,这是我的主页.
{% 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 %}
Run Code Online (Sandbox Code Playgroud)
你可以看到,我想要我的
{% block header %}{% endblock %}
Run Code Online (Sandbox Code Playgroud)
如果没有用户登录,则为空,但如果有用户登录,我想要
{% block header %}
Run Code Online (Sandbox Code Playgroud)
继承自base.html.但是,即使用户已登录,它也不会从base.html继承.用户登录时不会显示标题块.任何想法为什么?
用途block.super:
{% block header %}
{% if user.username %}
{{ block.super }}
{% else %}
{# empty #}
{% endif %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
根据Django模板文档:
如果您需要从父模板获取块的内容,该
{{ block.super }}变量将起作用.如果要添加到父块的内容而不是完全覆盖它,这将非常有用......
| 归档时间: |
|
| 查看次数: |
1035 次 |
| 最近记录: |