Internet Explorer Redirect Decorator

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
def no_ie(redirect):
    """
    Protects a view from the terror that is Microsoft Internet Explorer
    by redirecting the request to 'redirect'.
    
    Usage:
    
    @no_ie('/ie-compatible-page/')
    def my view(request):
       ...
    
    """
    def view_wrapper(view):
        def dec(request, *args, **kwargs):
            if request.META['HTTP_USER_AGENT'].find('MSIE') > 0:
                return HttpResponseRedirect(redirect)
            return view(request, *args, **kwargs)
        return dec
    return view_wrapper

Comments

(Forgotten your password?)

You may use Markdown syntax here, but raw HTML will be removed.