这应该很简单,但在花了几个小时试图弄清楚这一点,回顾过去的代码,并在网上搜索答案后,我失去了想法。
浏览器错误消息:
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
项目树:
bookmarks
├───accounts
│ ├───migrations
│ │ └───__pycache__
│ ├───templates
│ │ └───accounts
│ └───__pycache__
├───bookmarks
│ └───__pycache__
├───static
│ └───css
└───templates
书签/urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('accounts/', include('accounts.urls', namespace='accounts'))
]
它重定向到accounts/urls.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 %}
帮助和反馈将非常感谢。谢谢。
发布于 2018-08-08 06:17:11
您忘了在accounts/login.html
表单的action
属性中提到URL
{% url 'accounts:login' %}
https://stackoverflow.com/questions/51736129
复制相似问题