没有来自django.contrib.auth.views.LoginView的反向匹配错误



这应该很简单,但是在花了几个小时试图弄清楚这一点,查看过去的代码并在线搜索答案之后,我就没有想法了。

浏览器错误消息:

NoReverseMatch at /accounts/login/ Reverse for 'login' not found. 'login' is 
not a valid view function or pattern name.
Request Method: GET
Request URL:    http://127.0.0.1:8000/accounts/login/
Django Version: 2.1
Exception Type: NoReverseMatch
Exception Value:    
Reverse for 'login' not found. 'login' is not a valid view function or pattern name.
Exception Location: C:Anaconda3envsbookmarkslibsite-packagesdjangourlsresolvers.py in _reverse_with_prefix, line 622
Python Executable:  C:Anaconda3envsbookmarkspython.exe
Python Version: 3.6.6
Python Path:    
['C:\Users\raine\PycharmProjects\Mapt\bookmarks\bookmarks',
 'C:\Anaconda3\envs\bookmarks\python36.zip',
 'C:\Anaconda3\envs\bookmarks\DLLs',
 'C:\Anaconda3\envs\bookmarks\lib',
 'C:\Anaconda3\envs\bookmarks',
 'C:\Anaconda3\envs\bookmarks\lib\site-packages']
Server time:    Tue, 7 Aug 2018 21:29:41 +0000

项目树:

bookmarks
    ├───accounts
    │   ├───migrations
    │   │   └───__pycache__
    │   ├───templates
    │   │   └───accounts
    │   └───__pycache__
    ├───bookmarks
    │   └───__pycache__
    ├───static
    │   └───css
    └───templates

书签/网址.py

urlpatterns = [
path('admin/', admin.site.urls),
path('accounts/', include('accounts.urls', namespace='accounts'))
]

重定向到帐户/网址.py . 我不希望出现错误,因为我在 url 路径中分配了名称"login"。

app_name = 'accounts'
urlpatterns = [
    path('login/', 
         auth_views.LoginView.as_view(template_name='accounts/login.html'),
         name='login'),
    path('logout/', 
         auth_views.LogoutView.as_view(template_name='accounts/logout.html'), 
         name='logout'),
]

我特别困惑,因为LogoutView有效,而LoginView则不工作。我已经查看了其他一些项目的代码,这些项目完成了同样的事情,并且无法发现任何会导致我当前错误的差异。 很好奇。 该错误并没有让我相信我的模板有问题,但它们仍然在这里。

accounts/login.html

{% extends 'base.html' %}
{% load bootstrap3 %}
{% block title %} Login {% endblock %}
{% block content %}
<h1>Login</h1>
<p>Please use this form to login.</p>
<form class="form" method="post" action="{% url 'login' %}">
    {% csrf_token %}
    {{ form.as_p }}
    {% buttons %}
    <input type="hidden" name="next" value="{{next}}" />
    <button type="submit" class="btn btn-primary">Submit
    </button>
    {% endbuttons %}
</form>
{% endblock content %}

accounts/logout.html

{% extends 'base.html' %}
{% block content %}
<h1>Logout</h1>
<p>You have successfully logged out.</p>
<a href="{% url 'accounts:login' %}">Didn't mean to log out?  Log back in.</a>
{% endblock content %}

帮助和反馈将不胜感激。 谢谢。

您忘了在表单action属性
accounts/login.html提及 URL 命名空间{% url 'accounts:login' %}

相关内容

  • 没有找到相关文章

最新更新