Closes #6097: Redirect old slug-based object views

This commit is contained in:
jeremystretch
2021-04-08 13:25:29 -04:00
parent 7f7b9a0819
commit 4bac3fecaa
5 changed files with 20 additions and 0 deletions

View File

@@ -1,8 +1,10 @@
from django.contrib.auth.mixins import AccessMixin
from django.core.exceptions import ImproperlyConfigured
from django.shortcuts import get_object_or_404, redirect
from django.urls import reverse
from django.urls.exceptions import NoReverseMatch
from django.utils.http import is_safe_url
from django.views.generic import View
from .permissions import resolve_permission
@@ -123,3 +125,14 @@ class GetReturnURLMixin:
# If all else fails, return home. Ideally this should never happen.
return reverse('home')
#
# Views
#
class SlugRedirectView(View):
def get(self, request, model, slug):
obj = get_object_or_404(model.objects.restrict(request.user, 'view'), slug=slug)
return redirect(obj.get_absolute_url())