Django 1.10.2错误“NoReverseMatch at”,“Reverse'for'django.contrib.auth.views.login'with arguments'()'and keyword arguments'{}'not found。”
我是新来的python & Django。我遇到了一个错误,绝对不知道如何解决它。 任何帮助将不胜感激。 Django 1.10.2错误“NoReverseMatch at”,“Reverse'for'django.contrib.auth.views.login'with arguments'()'and keyword arguments'{}'not found。”
from django.shortcuts import render # Create your views here.
#log/views.py
from django.shortcuts import render
from django.contrib.auth.decorators import login_required
# Create your views here.
# this login required decorator is to not allow to any
# view without authenticating
@login_required(login_url="login/")
def home(request):
return render(request,"home.html")
在urls.py的代码,
from django.conf.urls import include,url from django.contrib import admin
from django.contrib.auth import views as auth_views
from log.forms import LoginForm
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'', include('log.urls')),
url(r'^login/$', auth_views.login ,{'template_name': 'login.html','authentication_form': LoginForm}),
url(r'^logout/$', auth_views.logout, {'next_page': '/login'}),
]
中的login.html的代码,
{% extends 'base.html' %} {% block content %}
{% if form.errors %}
<p>Your username and password didn't match. Please try again.</p>
{% endif %}
{% if next %}
{% if user.is_authenticated %}
<p>Your account doesn't have access to this page. To proceed,
please login with an account that has access.</p>
{% else %}
<p>Please login to see this page.</p>
{% endif %}
{% endif %}
<div class="container">
<div class="row">
<div class="col-md-4 col-md-offset-4">
<div class="login-panel panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Please Sign In</h3>
</div>
<div class="panel-body">
<form method="post" action="{% url 'django.contrib.auth.views.login' %}">
{% csrf_token %}
<p class="bs-component">
<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>
</p>
<p class="bs-component">
<center>
<input class="btn btn-success btn-sm" type="submit" value="login" />
</center>
</p>
<input type="hidden" name="next" value="{{ next }}" />
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
{% block javascript %}
<script>
{% if not user.is_authenticated %}
$("ul.nav.navbar-nav.navbar-right").css("display","none");
{% endif %}
</script>
{% endblock %}
希望这么多的信息将做....
回答:
添加name
到登录URL模式:
kwargs = {'template_name': 'login.html','authentication_form': LoginForm} ...
url(r'^login/$', auth_views.login, kwargs=kwargs, name='login'),
# ^^^^
,然后用它在你的模板name
:
<form method="post" action="{% url 'login' %}">
以上是 Django 1.10.2错误“NoReverseMatch at”,“Reverse'for'django.contrib.auth.views.login'with arguments'()'and keyword arguments'{}'not found。” 的全部内容, 来源链接: utcz.com/qa/266865.html