|
|
reusableapps-0.1-py2.4.egg reusableapps-0.1-py2.5.egg reusableapps-0.1.tar.gz
Reusable apps for Django.
This is yet another approach on enabling Django to load reusable, pluggable, egg-based applications without changing the Django sourcecode. Think of plugins or components, e.g. django-registration, django-voting or django-tagging.
It uses setuptools for finding, handling and loading egg-based Python modules with a certain "entry point" ('django.apps').
Egg-based Python modules (a.k.a. eggs) are compressed packaged Python modules like Django apps. Every Django app can be converted to an egg distribution by using a special setup.py file.
Hope you like it, Jannis.
Installation
Get the source from the application site in the download section or via SVN.
To install reusableapps, follow these steps:
- Follow the instructions in the INSTALL.txt file.
- Add import reusableapps to the top of your setting file.
- Add a new setting to your setting file, a list of locations of reusable apps, in search order. Note that these paths should use Unix-style forward slashes, even on Windows. For example:
- Add to the last line of your settings file (after the INSTALLED_APPS and REUSABLE_APPS_DIRS setting):
REUSABLE_APPS_DIRS = ( '/home/jannis/django/reusable_apps', '/usr/share/django/apps', 'C:/www/django/apps', )
INSTALLED_APPS = reusableapps.search(REUSABLE_APPS_DIRS, INSTALLED_APPS)
Putting it together
When finished with above installation instructions, your setting file should look something like this at the bottom:
import reusableapps
...
REUSABLE_APPS_DIRS = (
'/home/jannis/django/reusable_apps',
'/usr/share/django/apps',
'C:/www/django/apps',
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'myproject.myapp',
)
INSTALLED_APPS = reusableapps.search(REUSABLE_APPS_DIRS, INSTALLED_APPS)You can then put reusable, pluggable, egg-based Django apps in one of the directories in REUSABLE_APPS_DIRS.
Using templates from egg-based Django apps
If you want to use templates from a egg-based Django app please add 'django.template.loaders.eggs.load_template_source' to the TEMPLATE_LOADERS_setting.
Adding support for reusable applications to your own Django app
If you want to support django-reusableapps in your own Django app, you need to modify your existing setup.py to import the setup function from the setuptools instead the from the distutils:
from setuptools import setup
Furthermore you need to add an 'entry point' to the setup keywords:
entry_points={'django.apps': 'myapp = myapp'},where my myapp is the name of your Django app, e.g. registration. A full example can be found at docs/setup-example.txt and should be copied to the parent directory of your app as setup.py.
Building egg-based Django apps
Once you have a proper setup.py in the parent directory of your Django app, you can run:
python setup.py bdist_egg
to build a egg file of it. It will be created in the dist directory and have a filename like dummyapp-0.1-py2.5.egg. You can then distribute it and use it by placing it one of the REUSABLE_APPS_DIRS of your Django project.
Support
Please leave your questions and problems on the designated Google Code site.
