我有个错误:
TemplateSyntaxError at /accounts/profile/
<ExtendsNode: extends "registration/accounts/base.html"> must be the first tag in the template我写了base.html
{% load staticfiles %}
<html lang="ja">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="{% load staticfiles 'bootflat/css/bootflat.min.css' %}">
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
</head>
<body>
<nav class="navbar navbar-default" role="navigation">
<div class="navbar-header">
<p class="navbar-text">HELLO</p>
{% if user.is_authenticated %}
<p class="navbar-text">{{ user.get_username }}</p>
{% endif %}
</div>
</nav>
<div class="container">
{% block content %}
{% endblock %}
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="{% static 'bootstrap/js/bootstrap.min.js' %}"></script>
</body>
</html>profile.html是:
{% load staticfiles %}
{% extends "registration/accounts/base.html" %}
{% block content %}
<html lang="ja">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="{% static 'bootflat/css/bootflat.min.css' %}">
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
</head>
<body>
<a href="{% url 'kenshinresults'%}">SEE YOUR PHOTO</a>
<div class="container">
<form action="{% url 'accounts:upload_save' %}" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<p>SEND PHOTO</p>
<input type="file" name="files[]" multiple>
<input type="hidden" value="{{ p_id }}" name="p_id">
<input type="submit" value="Upload">
</form>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
</body>
</html>
{% endblock %}我发现只有base.html被准确显示,但是当我尝试base.html继承profile.html时,就会发生这个错误。在此之前,这两个文件是准确加载的,但是当我将href="{% static 'bootflat/css/bootflat.min.css' %}"添加到profile.html时,会发生这样的错误。为什么会发生这样的错误呢?我怎么才能解决这个问题?我认为在profile.html中添加{% load静态文件%}是正确的,但它是错误的吗?
发布于 2017-09-27 08:08:41
错误说明必须首先在模板中写入extends标记。您可以在文档中阅读更多有关这方面的内容。
所以,您应该首先用{% extends "registration/accounts/base.html" %}用profile.html编写
{% extends "registration/accounts/base.html" %}
{% load staticfiles %}
{% block content %}
...
{% endblock %}之后一切都会好起来的!
发布于 2017-09-27 08:20:52
您应该将base.html文件视为布局,将profile.html视为在此布局中呈现的模板文件。
为此原因:
load staticfiles块应该插入到base.html中,并且应该插入到加载静态资产的每个文件中(参见下一个项目点)src=内部的静态资产时,就足够用static路径助手加载它了。profile.html应该扩展布局base.html,而{% block content %}中包含的任何内容都将呈现在正文中的块内容标记中。base.html
<html lang="ja">
<head>
<meta charset="utf-8">
{% load staticfiles %}
<link rel="stylesheet" href="{% static 'bootflat/css/bootflat.min.css' %}">
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
</head>
<body>
{% block content %}
<!-- your body is fine -->
{% end block %}
</body>
</html>profile.html
{% extends "registration/accounts/base.html" %}
{% block content %}
<a href="{% url 'kenshinresults'%}">SEE YOUR PHOTO</a>
<form action="{% url 'accounts:upload_save' %}" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<p>SEND PHOTO</p>
<input type="file" name="files[]" multiple>
<input type="hidden" value="{{ p_id }}" name="p_id">
<input type="submit" value="Upload">
</form>
{% endblock %}丹尼尔·罗斯曼的编辑评论
https://stackoverflow.com/questions/46442566
复制相似问题