- April 27, 2009
- 1 (after 1 ratings)
This snippet monkey-patches Django's reverse() method (use for generating URLs from vew functions and parameters) to allow certain areas of your site to automatically have URLs with the correct SSL domain in place.
This saves you from having to use unnecessary redirects to guide users to an SSL-encrypted version of a page. This should still be used alongside a redirect-based method (such as this snippet) to ensure that the user can't access an unencrypted version of the page
Simply add the code to the files mentioned in the code.
This obviously won't work anywhere that doesn't use reverse(), the admin app seems to be an example of this.
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
- Serializer factory with Django Rest Framework by julio 5 months, 3 weeks ago
- Image compression before saving the new model / work with JPG, PNG by Schleidens 6 months, 1 week ago
- Help text hyperlinks by sa2812 7 months, 1 week ago
- Stuff by NixonDash 9 months, 1 week ago
- Add custom fields to the built-in Group model by jmoppel 11 months, 2 weeks ago