[Answered ]-Django: redirect url if slug is wrong

2๐Ÿ‘

โœ…

A middleware is a good choice if you want to process requests in many different views.

class RedirectMiddleware(object):
    def process_request(self, request):
        if request.resolver_match.app_name == 'posts' \
                and 'post_slug' in request.resolver_match.kwargs: 
            new_path = None
            # your logic here
            if new_path:
                return redirect(new_path, permanent=True)
        return

In settings:

MIDDLEWARE = [
    # another middlewares here ...
    'path.to.RedirectMiddleware',
]
๐Ÿ‘คAnton Shurashov

Leave a comment