aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pydis_site/apps/redirect/views.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/pydis_site/apps/redirect/views.py b/pydis_site/apps/redirect/views.py
new file mode 100644
index 00000000..9a4bfd65
--- /dev/null
+++ b/pydis_site/apps/redirect/views.py
@@ -0,0 +1,18 @@
+from django.views.generic import RedirectView
+
+
+class CustomRedirectView(RedirectView):
+ """Extended RedirectView for manual route args."""
+
+ permanent = True
+ static_args = ()
+
+ @classmethod
+ def as_view(cls, **initkwargs):
+ """Overwrites original as_view to add static args."""
+ return super().as_view(**initkwargs)
+
+ def get_redirect_url(self, *args, **kwargs):
+ """Extends default behaviour to use static args."""
+ args = args + self.static_args
+ return super().get_redirect_url(*args, **kwargs)