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

回到顶部