Django只加载base.html

时间:2015-03-14 00:25:30

标签: django

我正在尝试学习Django并尝试设置用户登录系统。我的网站只显示base.html内容,而不是login.html的内容。如果我删除extends base.html,登录表单似乎正确显示。我做错了吗?

的login.html

{% extends "base.html" %}
{% load url from future %}

{% block content %}

{% if form.errors %}
<p>Your username and password didn't match. Please try again.</p>
{% endif %}

<form method="post" action="{% url 'django.contrib.auth.views.login' %}">
{% csrf_token %}
<table>
<tr>
    <td>{{ form.username.label_tag }}</td>
    <td>{{ form.username }}</td>
</tr>
<tr>
    <td>{{ form.password.label_tag }}</td>
    <td>{{ form.password }}</td>
</tr>
</table>

<input type="submit" value="login" />
<input type="hidden" name="next" value="{{ next }}" />
</form>

{% endblock %}

base.html文件

 <body>
    <div>
      {{ user }}
      {% if user.is_anonymous %}
      <a href="{% url 'django.contrib.auth.views.login' %}">login</a>
      {% else %}
      <a href="{% url 'django.contrib.auth.views.logout' %}">logout</a>
      {% endif %}
    </div>

2 个答案:

答案 0 :(得分:1)

您的base.html模板缺少相应的{% block content %}{% endblock content %}以及结束</body>标记。 login.html中的内容无处可去。

答案 1 :(得分:0)

布兰登是对的。

您可以将{%block content%}视为base.html中的漏洞,扩展文件只会替换/填充该漏洞。