A Django application for periodical/magazine websites with fully cross linked indices on Periodical, Issue, Article, Author, Article Series and Tags. Provides full text search of article titles and descriptions. A complete set of templates are provided. A sitemap is also dynamically generated.
The full documentation is at http://django-periodicals.rtfd.org.
Simple to install from a package using pip which will install all it’s dependencies (coming soon). For now see installing-from-github.
pip install django-periodicals
Install two packages manually to get newer versions than are currently in PyPi:
$ pip install -e git://github.com/saschwarz/django-recaptcha.git#egg=django-recaptcha
$ pip install -e git://github.com/nemith/django-tagging.git@dev-django1.5#egg=django_tagging-dev
Install a search backend for use by Haystack. To start install Whoosh:
$ pip install Whoosh
Add periodicals and the other applications it uses to INSTALLED_APPS:
INSTALLED_APPS = (
...
'haystack',
'tagging',
'captcha',
'periodicals',
)
Configure your Haystack backend. Here is an example using Whoosh:
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
'PATH': os.path.join(os.path.abspath(os.path.dirname(__file__)), 'whoosh_periodicals_index'),
'STORAGE': 'file',
'POST_LIMIT': 128 * 1024 * 1024,
'INCLUDE_SPELLING': True,
'BATCH_SIZE': 100,
},
}
Configure your reCAPTCHA keys - only used when users add links to Articles or Issues:
RECAPTCHA_PRIVATE_KEY = "your-recaptcha-private-key"
RECAPTCHA_PUBLIC_KEY = "your-recaptcha-public-key"
Choose a URL prefix at which to base the application:
...
import periodicals
urlpatterns = patterns('',
...
url(r'^admin/', include(admin.site.urls)),
url(r'^periodicals/', include(periodicals.urls)),
)
$ python manage.py syncdb
I developed django-periodicals to provide a searchable index for a printed/online magazine. I wanted all the meta data to be fully cross linked. So users can easily browse all articles for an author, all articles in an issue, all articles in a series/category, all articles tagged with a keyword and so forth.
I turned it in to a standalone application when I ported it to Django 1.5. Here are the features: