Skip to content

login_not_required for Django 5.1+ with django.contrib.auth.middleware.LoginRequiredMiddleware #21

@sierra-alpha

Description

@sierra-alpha

Hi there, great tutorial, thanks so much it helped me out a lot!

One things that tripped me up was that I was using Django 5.1 with the login required turned on by default, it was a simple fix though to use the login_not_required decorator.

So https://github.com/wsvincent/django-auth-tutorial/blob/main/django_project/urls.py becomes:

from django.contrib import admin
from django.urls import path, include
from django.views.generic.base import TemplateView
from django.contrib.auth.decorators import login_not_required


urlpatterns = [
    path("admin/", admin.site.urls),
    path("accounts/", include("accounts.urls")),  # new
    path("accounts/", include("django.contrib.auth.urls")),
    path("", login_not_required(TemplateView.as_view(template_name="home.html")), name="home"),
]

and https://github.com/wsvincent/django-auth-tutorial/blob/main/accounts/urls.py becomes:

from django.urls import path
from django.contrib.auth.decorators import login_not_required

from .views import SignUpView


urlpatterns = [
    path("signup/", login_not_required(SignUpView.as_view()), name="signup"),
]

Sorry I don't have time for a PR but you'd need to also bump the requirements.txt to Django 5.1 and add the "django.contrib.auth.middleware.LoginRequiredMiddleware" to the MIDDLEWARE =[...] section in the Django projects settings.py if you wanted to incorporate this into the tutorial.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions