django-multihost 0.3

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 Settings

There 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.

last updated on:
August 31st, 2010, 10:52 GMT
price:
FREE!
developed by:
James Addison
homepage:
github.com
license type:
BSD License 
category:
ROOT \ Internet \ Django Plugins

FREE!

In a hurry? Add it to your Download Basket!

user rating

UNRATED
0.0/5
 

0/5

Rate it!

Add your review!

SUBMIT