我正在使用模板系统开发我网站的不同页面。我有一个' base.html'这是基本模板,其中有静态(没有{%blocks%})我所有网站页面中的常用功能,如标题和导航菜单。
我正在对其进行一些更改,例如将标题上的文字引入“登录”状态。和'注销',还在菜单元素上创建链接。
当我转到其他模板(扩展' base.html')时,它会很好地加载它,但是例如那些' login'顶部div上的新功能以及菜单上的链接都没有显示。如果模板扩展到' base.html'?我将向您展示一些代码:
' base.html文件'有这个代码:
<body>
<header>
<div class="topbox">
<!-- <img src="static/mysite/g5794.png" alt="Logo" height="180" width="1400"> -->
</div>
<div id="auth">
{% if user.is_authenticated %}
<p>Bienvenido, <b>{{ user.username }} | <a href=" {% url "logout" %}">Logout</a></b></p>
{% else %}
<p>Bienvenido, por favor <a href="{% url "login" %}">loguéate</a></p>
{% endif %}
</div>
<p>MAIN PAGE MAIN TOP PAGE</p>
</header>
<nav>
<div class="menu">
<p><a href="{% url "index_view" %}">HOME</a> | <a href="{% url "list_index" %}">LIST</a> | <a href="">ELSE</a> | <a href="">BLOG</a></p>
</div>
</nav>
{% block content1 %}
我提到的功能不适用于扩展&base.html&#39;的任何其他模板。例如,&#39; login.html&#39;目前,模板看起来像这样:
{% extends "base.html" %}
{% load staticfiles %}
{% load static from staticfiles %}
{% load i18n %}
{% block title %}{% trans "LOGIN" %}{% endblock %}
{% include "base.html" %}
{% block content1 %}
{% block style_base %}
<link href="{% static 'css/styles.css' %}" rel="stylesheet">
{% endblock %}
<div style="text-align:center">
<h1>login</h1>
{% if message %}
<b>{{message}}</b>
{% endif %}
<form action="" method="post">{% csrf_token %}
{{form.as_p}}
<input type="submit" value="Submit" />
</form>
{% endblock %}
页面顶部的所有模板标签稍微需要继承&#39; base.html&#39; (如果没有那么多代码,就无法找到扩展到这些样式的方法)。它正确加载顶部的div,但它没有显示我提到的内容(标题中的新登录/注销行和导航菜单中的链接)。对于&#39; list_index&#39;也是如此。模板。
我不知道这里会发生什么。真的可以扩展到某些代码片段或者不能扩展到最新版本吗?我的settings.py模板部分如下所示:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'Templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'django.template.context_processors.media'
],
},
},
]
还尝试使用&#39; DIRS&#39;:[]。唯一显示一切正常的页面是索引页面(base.html页面)。其他模板会发生什么?谢谢。
答案 0 :(得分:0)
我只看到{%block content1%},看不到{%endblock content1%}}。