django-multihost

Simple multihost handling for Django
Download

django-multihost Ranking & Summary

Advertisement

  • Rating:
  • 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