照著《Python從入門到實踐》做的,登錄輸入用戶名密碼后點擊登錄就報錯,哪位幫忙看看,我的Django是3.0.4,Python版本是3.8
錯誤提示:
NoReverseMatch at /users/login/
Reverse for 'index' not found. 'index' is not a valid view function or pattern name.
Request Method: POST
Request URL: http://127.0.0.1:8000/users/login/
Django Version: 3.0.4
Exception Type: NoReverseMatch
Exception Value:
Reverse for 'index' not found. 'index' is not a valid view function or pattern name.
Exception Location: D:\Work\python\leaming_log\ll_env\lib\site-packages\django\urls\resolvers.py in _reverse_with_prefix, line 677
Python Executable: D:\Work\python\leaming_log\ll_env\Scripts\python.exe
Python Version: 3.8.0
Python Path:
['D:\\Work\\python\\leaming_log',
'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python38\\python38.zip',
'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python38\\DLLs',
'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python38\\lib',
'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python38',
'D:\\Work\\python\\leaming_log\\ll_env',
'D:\\Work\\python\\leaming_log\\ll_env\\lib\\site-packages']
Server time: 星期一, 16 三月 2020 22:28:19 +0800
另外貼上程式代碼:
login.html
{% extends "learning_logs/base.html" %}
{% block content %}
{% if form.errors %}
<p>Your username and password didn't match. Please try again.</p>
{% endif %}
<form method='post' action="{% url 'users:login' %}">
{% csrf_token %}
{{ form.as_p }}
<button name="submit">log in</button>
<imput type="hidden" name="next" value="https://bbs.csdn.net/topics/{% url 'learning_logs:index' %}" />
</form>
{% endblock content %}
learning_logs/views.py
from django.shortcuts import render
from django.http import HttpResponseRedirect
#from django.core.urlresolvers import reverse
from django.urls import reverse
from .models import Topic, Entry
from .forms import TopicForm, EntryForm
def index(request):
"""學習筆記的主頁"""
return render(request, 'learning_logs/index.html')
.......
learning_logs/urls.py
"""定義learning_logs的url模式"""
from django.conf.urls import url
from django.urls import path
from . import views
app_name = 'learning_logs'
urlpatterns = [
#主頁
path('', views.index, name='index'),
#url(r'^$', views.index, name='index'),
#顯示所有主題
#url(r'^topics/$', views.topics, name='topics'),
path('topics/', views.topics, name='topics'),
#特定主題的詳細頁面
#url(r'^topics/(?P<topic_id>\d+)/$', views.topic, name='topic'),
path('topics/<topic_id>/', views.topic, name='topic'),
#用于添加新主題的網頁
#url(r'^new_topic/$', views.new_topic, name='new_topic'),
path('new_topic/', views.new_topic, name='new_topic'),
#用于添加新條目的頁面
#url(r'^new_entry/(?P<topic_id>\d+)/$', views.new_entry, name='new_entry'),
path('new_entry/<topic_id>/', views.new_entry, name='new_entry'),
#用于編輯條目的頁面
#url(r'^edit_entry/(?P<entry_id>\d+)/$', views.edit_entry, name='edit_entry'),
path('edit_entry/<entry_id>/', views.edit_entry, name='edit_entry'),
]
uj5u.com熱心網友回復:
Reverse for 'index' not found. 'index' is not a valid view function or pattern name.index是保留字,不能用來做函式名
uj5u.com熱心網友回復:
應該不是這個問題吧,我沒做登陸跳轉時是好使的,就是之前打開網址默認就是進去這個index.html頁面,是好使的
uj5u.com熱心網友回復:
form action 你使用 /users/login/我用django 2.2 , 可用的是 accounts/login/ 或 admin/login
uj5u.com熱心網友回復:
從錯誤來看,應該是模版頁login.html里面的 {% url 'learning_logs:index' %} 有問題但是你整個代碼不完整,不清楚哪里有問題,你可以試著用排除法去排查問題,而不是把這種碎片代碼一放等著別人幫你看
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/73612.html
