Я создал страницу входа, но всякий раз, когда я ввожу учетные данные, она показывает мне NoReverseMatch в / login - PullRequest
0 голосов
/ 08 мая 2020

моя html страница входа:

<html>
<head>
<title>Login Page</title>
</head>
<body>
<form method="post" action="/login">
{% csrf_token %}
<table width="20%" bgcolor="0099CC" align="center">

<tr>
<td colspan=2><center><font size=4><b>User Login Page</b></font></center></td>
</tr>

<tr>
<td>Username:</td>
<!-- name=Username to username -->
<td><input type="text" size=25 name="username"></td>
</tr>

<tr>
<td>Password:</td>
<!-- name=Password to password-->
<td><input type="Password" size=25 name="password"></td>
</tr>

<tr>
<td><input type="submit" onclick="return check(this.form)" value="Login"></td>
</tr>

</table>
</form>
<div> 
{% for messages in messages %}
<h3> {{messages}}  </h3>
{% endfor %}
</div>

</body>
</html>



my views file is:



from django.shortcuts import render, redirect
from django.contrib import messages
from django.contrib.auth.models import User, auth

  def login(request):
    if request.method == 'POST':
      username = request.POST.get('username', None)
      password = request.POST.get('password', None)

    user = auth.authenticate(username=username,password=password)

    if user is not None:
        auth.login(request, user)
        return redirect('/')
    else:
        messages.info(request,'Invalid Credentials')
        return redirect('login ')
  else:
    return render(request,'login.html')

мои URL-адреса для просмотров:

  from Django.urls import path

  from. import views

  urlpatterns = [
     path('',views.homepage, name='homepage'),
     path('login',views.login, name='login'),
     path('registration',views.registration, name='registration'),
  ]

Отображается ошибка:

  NoReverseMatch at /login
  Reverse for 'login ' not found. 'login ' is not a valid view function or pattern name.
  Request Method:   POST
  Request URL:  http://127.0.0.1:8000/login
  Django Version:   3.0.4
  Exception Type:   NoReverseMatch
  Exception Value:  
  Reverse for 'login ' not found. 'login ' is not a valid view function or pattern name.
  Exception Location:   C:\Program Files\Python38\lib\site-packages\django\urls\resolvers.py in 
  _reverse_with_prefix, line 677
  Python Executable:    C:\Program Files\Python38\python.exe
  Python Version:   3.8.1
  Python Path:  
  ['C:\\Users\\siddh\\projects\\telusko',
  'C:\\Program Files\\Python38\\python38.zip',
  'C:\\Program Files\\Python38\\DLLs',
  'C:\\Program Files\\Python38\\lib',
  'C:\\Program Files\\Python38',
  'C:\\Program Files\\Python38\\lib\\site-packages']
   Server time: Fri, 8 May 2020 14:27:05 +0000

пожалуйста, помогите мне чтобы решить эту ошибку, пожалуйста, помогите мне решить эту ошибку, пожалуйста, помогите мне решить эту ошибку, пожалуйста, помогите мне решить эту ошибку, пожалуйста, помогите мне решить эту ошибку, пожалуйста, помогите мне решить эту ошибку, пожалуйста, помогите мне решить эту ошибку, пожалуйста, помогите мне решить эту ошибку

Ответы [ 2 ]

0 голосов
/ 08 мая 2020

заменить эту строку кода или удалить пробел из ('login')

return redirect('login ')

заменить этой строкой кода

return redirect('login')
0 голосов
/ 08 мая 2020

используйте redirect (reverse ('login')) вместо redirect ('login') вы можете импортировать обратный, используя строку ниже.

from django.urls import reverse
...