diff --git a/web/requirements.txt b/web/requirements.txt index 03afb7a..da7a778 100644 --- a/web/requirements.txt +++ b/web/requirements.txt @@ -1,5 +1,5 @@ -Django==5.0 -djangorestframework==3.16.0 +Django==5.1.10 +djangorestframework==3.16.1 django-filter==25.1 Markdown gunicorn diff --git a/web/settings.py b/web/settings.py index 771bbd5..a9e4e15 100644 --- a/web/settings.py +++ b/web/settings.py @@ -193,3 +193,6 @@ # CSRF trusted origins CSRF_TRUSTED_ORIGINS = os.getenv("DJANGO_CSRF_TRUSTED_ORIGINS", "").split(",") + +# To direct django admin login into the built-in admin login page +LOGIN_URL = "/admin/login/" diff --git a/web/urls.py b/web/urls.py index 784c649..07b34d8 100644 --- a/web/urls.py +++ b/web/urls.py @@ -2,6 +2,7 @@ from django.contrib import admin from django.views.generic.base import RedirectView from django.urls import path +from views import DRFLoginView admin.autodiscover() @@ -10,6 +11,7 @@ path("admin/", admin.site.urls), path("api/", include("services.urls")), # should be in services/urls.py + path("api-auth/login/", DRFLoginView.as_view(), name="rest_login"), path("api-auth/", include("rest_framework.urls", namespace="rest_framework")), path("", RedirectView.as_view(url="/api/", permanent=True)), ] diff --git a/web/views.py b/web/views.py index 5487643..f9a1b71 100644 --- a/web/views.py +++ b/web/views.py @@ -1,5 +1,19 @@ -from django.shortcuts import render_to_response +from django.shortcuts import render +from django.contrib.auth.views import LoginView def home(request): - return render_to_response("home/home.html") + return render(request, "home/home.html") + + +class DRFLoginView(LoginView): + template_name = "rest_framework/login.html" + + def get(self, request, *args, **kwargs): + context = { + "form": self.get_form(), + "next": request.GET.get("next", ""), + "name": "Login", + "code_style": "friendly", + } + return render(request, self.template_name, context)