Как предотвратить прямой доступ к URL в Django?

Я новичок в Django и делаю простое веб-приложение, и мне нужно заставить пользователей вводить свои имена и пароли для доступа к следующей странице. Я не хочу, чтобы они получали прямой доступ к любой странице без входа в систему. Я использовал декоратор @login_required, однако, когда я пишу (http://127.0.0.1:8000/logindata/) в браузере, он выдает ошибку "Страница не найдена".
Помогите, пожалуйста,

views.py:

from django.shortcuts import render
from django.http import HttpResponse
from django.db import connection
from django.contrib.auth.decorators import login_required
import pyodbc



def index(request):
     if 'Login' in request.POST:
          rows = []
          username = request.POST.get('username')
          if username.strip() != '':
               rows = getLogin(username)
               if len(rows) > 0:
                    return render(request, 'login/welcome.html')
               else:
                    return render (request, 'login/index.html')
          else:
              return render (request, 'login/index.html') 
     else:
          return render (request, 'login/index.html')


def getLogin(UserName=''):
     command = 'EXEC GetLogin\'' + UserName + '\''
     cursor = connection.cursor()
     cursor.execute(command)

     rows = []
     while True:
          row = cursor.fetchone()
          if not row:
               break
          
          userName = row[0]
          password = row[1]
          name = row[2]
          email = row[3]
                   
          rows.append({'userName': userName, 'password': password, 'name': name, 'email': email})
     
     cursor.close()
     return rows

@login_required(login_url='/index/')
def readLogin(request):
     rows = getLogin()
     return render(request, 'login/loginsdata.html', {'rows': rows}) 

Приложение urls.py:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('logindata/', views.readLogin, name='logindata'),    
]

Главный urls.py:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('login.urls')),
]
Вернуться на верх