首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >没有来自django.contrib.auth.views.LoginView的反向匹配错误

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

Stack Overflow用户
提问于 2018-08-08 06:12:13
回答 1查看 422关注 0票数 0

这应该很简单,但在花了几个小时试图弄清楚这一点,回顾过去的代码,并在网上搜索答案后,我失去了想法。

浏览器错误消息:

代码语言:javascript
复制
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:\Anaconda3\envs\bookmarks\lib\site-packages\django\urls\resolvers.py in _reverse_with_prefix, line 622
Python Executable:  C:\Anaconda3\envs\bookmarks\python.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

项目树:

代码语言:javascript
复制
bookmarks
    ├───accounts
    │   ├───migrations
    │   │   └───__pycache__
    │   ├───templates
    │   │   └───accounts
    │   └───__pycache__
    ├───bookmarks
    │   └───__pycache__
    ├───static
    │   └───css
    └───templates

书签/urls.py

代码语言:javascript
复制
urlpatterns = [
path('admin/', admin.site.urls),
path('accounts/', include('accounts.urls', namespace='accounts'))
]

它重定向到accounts/urls.py。我没有预料到我的错误,因为我已经在url路径中分配了名称'login‘。

代码语言:javascript
复制
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

代码语言:javascript
复制
{% 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

代码语言:javascript
复制
{% 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 %}

帮助和反馈将非常感谢。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-08 06:17:11

您忘了在accounts/login.html表单的action属性中提到URL

{% url 'accounts:login' %}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51736129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档