django-domains 0.1
An application that allows you to run many different sites on one Django instance
Installation
- Install the package
pip install django-domains
- Open settings.py and add middlewares into end of MIDDLEWARE_CLASSES tuple:
MIDDLEWARE_CLASSES += (
'domains.middleware.RequestMiddleware',
'domains.middleware.DynamicSiteMiddleware',
)
First middleware domains.middleware.RequestMiddleware is required, because it sets the request object into local thread.
Second middleware domains.middleware.DynamicSiteMiddleware is optional. You can use it for dynamical changing SITE_ID parameter corresponding site's PK with requested domains (see Django sites framework).
If you also want to use different templates for domains, add template loaders in begin of TEMPLATE_LOADERS tuple:
TEMPLATE_LOADERS = (
'domains.loaders.filesystem.Loader',
'domains.loaders.app_directories.Loader',
# another loaders
)
- Run tests:
./manage.py test domains
Usage
If you want to use different template sets for each domains, just create directories with name domainname.tld (don't forget add TEMPLATE_LOADERS as figured in Installation) and put templates here.
Also you can use custom function that builds domain name. You must add DOMAINS_TEMPLATE_NAME_FUNCTION attribute into your settings.py and specify path to naming function.
Function must return tuple with path fragments. This fragments will be joined into full template path with django-domains.
Expect you call this function my_custom_template_name and placed it in my/project/utils.py:
Btw, you can access to request :)
def my_custom_template_name(template_dir, template_name):
"""
This function generates template path in format:
{template_dir}/custom/domains/{host}/{template_name}
"""
from domains.utils import get_request
request = get_request()
return (template_dir, 'custom', 'domains', request.get_host,
template_name)
Add into your settings.py this line:
DOMAINS_TEMPLATE_NAME_FUNCTION = 'my.project.utils.my_custom_template_name'
| File | Type | Py Version | Uploaded on | Size | # downloads |
|---|---|---|---|---|---|
| django-domains-0.1.tar.gz (md5) | Source | 2011-11-24 | 5KB | 219 | |
- Author: marazmiki
- Categories
- Package Index Owner: marazmiki
- DOAP record: django-domains-0.1.xml
