diff --git a/aleksis/core/mixins.py b/aleksis/core/mixins.py index 3cad91f2c80301d8d73268e32f58d7773c5a45c8..7b7b0b2b466e2c4f35311eb9253d6af144b5660d 100644 --- a/aleksis/core/mixins.py +++ b/aleksis/core/mixins.py @@ -5,6 +5,7 @@ from typing import Any, Callable, List, Optional, Tuple, Union from django.conf import settings from django.contrib import messages +from django.contrib.auth.views import LoginView, SuccessURLAllowedHostsMixin from django.contrib.contenttypes.models import ContentType from django.contrib.sites.managers import CurrentSiteManager from django.contrib.sites.models import Site @@ -415,6 +416,13 @@ class SuccessMessageMixin(ModelFormMixin): return super().form_valid(form) +class SuccessNextMixin(SuccessURLAllowedHostsMixin): + redirect_field_name = "next" + + def get_success_url(self) -> str: + return LoginView.get_redirect_url(self) or super().get_success_url() + + class AdvancedCreateView(SuccessMessageMixin, CreateView): pass