django-multihostSimple multihost handling for Django | |
Download |
django-multihost Ranking & Summary
Advertisement
- License:
- BSD License
- Publisher Name:
- James Addison
- Publisher web site:
- http://scottisheyes.com
django-multihost Tags
django-multihost Description
Simple multihost handling for Django django-multihost is a Django middleware that overrides Site ORM functionality and gets the current Site from the Host header. The code is loosely based on the work done by Bruce Kroeze here: django-threaded-multihost.The MultiHostMiddleware class contained in this app has 2 tasks: 1. Upon middleware __init__(), it overrides SiteManager.get_current() with a multihost-aware version that reads the Host header from the request and attempts to find a matching Site (caches it if cache is enabled). 2. Upon middleware process_request(), it sets the request into threadlocal storage and then uses the new SiteManager.get_current() functionality to retrieve the Site matching the Host header and sets it into the request instance. If a match is not found and MULTIHOST_AUTO_WWW is True (the default), it will attempt to modify the Host URL to add/remove www. and attempt the lookup again. If it still doesn't find a matching Site, it redirects to MULTIHOST_REDIRECT_URL.Installation 1. Copy or symlink the multihost package into your django project directory or install it by running one of the following commands: python setup.py install or pip install django-multihost or easy_install django-multihost 2. Add MULTIHOST_REDIRECT_URL to settings.py 3. Add multihost.middleware.MultiHostMiddleware to your MIDDLEWARE_CLASSES in at the end of the list. If you find it isn't working, move it up the list order as there may be a middleware conflict.Advanced SettingsThere are 4 settings that developers can use to override default functionality: * MULTIHOST_REDIRECT_URL: required; no default. The default middleware request processing will redirect to this URL in the case of Site lookup failure. * MULTIHOST_AUTO_WWW: optional; defaults to True. If the Site can't be found that matches the incoming Host header exactly, this will automatically try removing/adding www. and searching again. Requirements: · Python · Django
django-multihost Related Software