Heroku Django Маршрутизация входа в систему

Я пытаюсь сделать так, чтобы мой url.com переходил прямо на страницу входа в систему, а затем правильно маршрутизировался. Проблема в том, что я пытаюсь следовать https://learndjango.com/tutorials/django-login-and-logout-tutorial, но пытаюсь сделать это в специальном приложении для страниц, в котором я не уверен.

enter image description here

url.com -> должен отображать login.html, который расширяется из base.html, если пользователь не вошел в систему

pages/urls.py

from django.urls import path

from . import views

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

Думаю, мне нужно изменить здесь путь на что-то для base.html

pages/views.py

from django.shortcuts import render

def index(request):
    return render(request,'registration/login.html')

Итак, эти два пункта составляют то, как запросить login.html из url.

settings.py

Думаю, последние две строки должны быть домашними.

portfolio/urls.py

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path("", include("pages.urls")),
    path('accounts/', include('django.contrib.auth.urls')),
    

]

Не уверен, что здесь нужны шаблоны url То, что я хочу использовать, это django.contrib.auth.urls в приложении с выделенной страницей.

В настоящее время работает только url.com/accounts/login, а url.com имеет неисправный логин, который ничего не делает.

В вашем файле settings.py вы можете разместить что-то вроде:

LOGIN_URL = '/login/'

и любое представление, для которого вы хотите, чтобы вход был обязательным, вы можете поместить это в views.py над соответствующей функцией:

@login_required

Итак, для представления индекса все, что вам нужно, это:

from django.shortcuts import render
from django.contrib.auth.decorators import login_required
    @login_required
    def index(request):
        

Для получения более подробной информации смотрите документацию.

Вы можете использовать декоратор @login_required, который будет перенаправлять пользователя на страницу входа в систему, если пользователь не прошел аутентификацию.

from django.contrib.auth.decorators import login_required. 

@login_required
def index(request):
    # now the index function renders the home page
    return render(request,'home.html') 
Вернуться на верх