我在制作应用时出现此错误,我认为问题位于我的login.html,因为它指向错误表。是因为我有2个{%block content%}它有冲突吗?谢谢你的帮助
TemplateSyntaxError at /login/
'block' tag with name 'content' appears more than once
Request Method: GET
Request URL: http://127.0.0.1:8000/login/
Django Version: 1.4.3
Exception Type: TemplateSyntaxError
Exception Value:
'block' tag with name 'content' appears more than once
Error during template rendering
In template C:\djcode\mysite\drinker\templates\login.html, error at line 21
'block' tag with name 'content' appears more than once
11 <div class="register_div">
12 {% if form.password.errors %}<p class="error">{{ form.password.errors }}</p>{% endif %}
13 <p><label for="password"{% if form.password.errors %} class="error"{% endif %}>Password:</label></p>
14 <p>{{ form.password }}</p>
15 </div>
16 <p><input type="submit" alt="register" /></p>
17 </form>
18 <p>Forgot your password? <a href="/resetpassword/">Reset it!</a></p>
19 {% endblock %}
20 {% extends "base.html" %}
21 {% block content %}
我的login.html
{% extends "base.html" %}
{% block content %}
<form action="" method="post">
{% csrf_token %}
{% if form.errors %}<p>Please correct the following fields:</p>{% endif %}
<div class="register_div">
{% if form.username.errors %}<p class="error">{{ form.username.errors }}</p>{% endif %}
<p><label for="username"{% if form.username.errors %} class="error"{% endif %}>Username:</label></p>
<p>{{ form.username }}</p>
</div>
<div class="register_div">
{% if form.password.errors %}<p class="error">{{ form.password.errors }}</p>{% endif %}
<p><label for="password"{% if form.password.errors %} class="error"{% endif %}>Password:</label></p>
<p>{{ form.password }}</p>
</div>
<p><input type="submit" alt="register" /></p>
</form>
<p>Forgot your password? <a href="/resetpassword/">Reset it!</a></p>
{% endblock %}
我还有一个链接到我的views.py
的追溯 Traceback Switch to copy-and-paste view
C:\Python26\Lib\site-packages\django\core\handlers\base.py in get_response
response = callback(request, *callback_args, **callback_kwargs)
...
▶ Local vars
C:\djcode\mysite\drinker\views.py in LoginRequest
return render_to_response('login.html', context, context_instance=RequestContext(request))
...
▶ Local vars
答案 0 :(得分:2)
是的,错误很明显:你有两个名为“content”的块。
说实话,我无法理解你在做什么,因为第二块看起来与第一块完全相同。您也不能拥有两个extends
代码。
答案 1 :(得分:0)
您可以在后端执行您想做的事情,即:-Python。 例如,您可以执行以下操作:-
# views.py::
if something is True(any condition for that matter)
msg = "something"
else:
msg = "Something else"
# template, it is here -- index.html::
{% block title %}{{msg}}{% endblock title %}
答案 2 :(得分:0)
如果您想多次渲染任何变量。
在渲染文件时作为输入传递。
像这样:
from django.shortcuts import render
def a_function_to_render_file(request):
return render(request, "my_file.html",
{
"data":"my_data"
})
在 HTML 文件中:
{{ my_data }}
<b>
{{ my_data }}
答案 3 :(得分:0)
我认为有时错误代码可能有点直截了当,“我认为”。无论如何,我通过删除额外的行标记解决了这个问题,在本例中为 {% block content %}
行标记。