Decorator to modify reverse() to render SSL urls

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
"""
In your site's __init__.py
"""

from django.core import urlresolvers
from django.conf import settings

def reverse_decorator(func):
    def inner(*args, **kwargs):
        abs_path = func(*args,**kwargs)
        if settings.SSL_DOMAIN and settings.SSL_SECTIONS and settings.SSL_DOMAIN.startswith('https'):
            for section in settings.SSL_SECTIONS:
                if abs_path.startswith(section):
                    abs_path = settings.SSL_DOMAIN + abs_path
                    break
        return abs_path        
    return inner
urlresolvers.reverse = reverse_decorator(urlresolvers.reverse)

"""
In settings.py
"""

SSL_DOMAIN = 'https://example.com'
            
SSL_SECTIONS = (
    '/checkout',
    '/account',
)

More like this

  1. SSL Middleware by sjzabel 7 years, 1 month ago
  2. HTTPS redirections middleware with updated URL template tag by xlq 1 year, 6 months ago
  3. SSL Middleware for Webfaction by parlar 6 years, 11 months ago
  4. SSL Redirect Middleware by zbyte64 5 years, 9 months ago
  5. Using reverse() to do redirects by ubernostrum 6 years, 8 months ago

Comments

(Forgotten your password?)