我正在尝试学习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>
答案 0 :(得分:1)
您的base.html
模板缺少相应的{% block content %}{% endblock content %}
以及结束</body>
标记。 login.html
中的内容无处可去。
答案 1 :(得分:0)
您可以将{%block content%}视为base.html中的漏洞,扩展文件只会替换/填充该漏洞。