10

我在制作应用程序时遇到此错误,我认为问题位于我的 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 
4

5 回答 5

6

是的,错误很明显:您有两个名为“内容”的块。

老实说,我无法理解您在做什么,因为第二个块似乎与第一个块完全相同。你也不能有两个extends标签。

于 2013-02-27T12:58:52.437 回答
1

您可以在后端做您想做的事情,即:- 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 %}
于 2020-06-06T18:43:08.607 回答
0

如果有任何变量要多次渲染。
只需在渲染文件时作为输入传递。
像这样:

from django.shortcuts import render

def products_list(request):
    return render(request, "products/list.html",
        {
            "title":"Products List"
        })

在 HTML 文件中:

<html>

<head>
    <title>{{ title }} | My  Website</title>
</head>

<body>
    <h1>{{ title }}:</h1>
</body>

这将呈现如下:

<html>

<head>
    <title>Products List | My  Website</title>
</head>

<body>
    <h1>Products List:</h1>
</body>
于 2021-07-26T01:15:57.627 回答
0

我认为有时错误代码可能有点直截了当,“我认为”。无论如何,我通过删除额外的行标签(在本例中为{% block content %}行标签)解决了这个问题。

于 2021-08-03T09:15:26.207 回答
0

就我而言,它是通过更改块内容的名称来解决的。

我遇到此错误的情况是:我网站的某些页面对公众开放。我网站的某些页面可供网站用户免费查看。

因为我的用户注册是在用户身份验证步骤中输入的,所以我正在检查该站点。如果它是匿名的,它必须先注册,所以我有两个选择来检查。第一种情况(如果匿名) Ligen 页面、主页、规则和.. Redomination 模式(如果站点用户)页面、配置文件和应用程序我更改了内容块以解决名称。在 base.html 文件中: 这个基础论坛:

          {% block content1%}
user.is_anonymous
          {% endblock content1%}

           block% block content2%}
is_authenticated
          end% endblock content2%}
于 2022-02-16T18:11:37.507 回答