skip to navigation
skip to content

django-periodicals 0.8.0

Django app to create periodical/magazine websites"


.. image::

.. image::

.. image::

.. image::

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


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:

* Provides Django models for Periodicals, Issues, Articles, Authors, Tags and Links to external material.

* A full set of templates are provided including:

* Individual Periodical pages with yearly indices.

* Fully cross-linked indexes of Authors, Issues, Article Series, Tags, and Articles.

* Search across Article titles and descriptions.

* Tagging:

* Per article.

* Index pages per tag.

* Tag cloud.

* Moderated user added links of blog posts and other web resources to each Issue and Article. Spam protection by `reCAPTCHA <http:"" recaptcha="">`_ and requiring approval by the admin. This feature can be disabled via setting.

* Django admin forms for data entry.

* Sitemap support.

* Support for Python 2.6, 2.7 and Django 1.5 and 1.6.

* Travis CI unit tests.

* See ``django-periodicals`` in action at `Googility <http:"" periodicals=""/>`_.


You can install from GitHub and try out a fully functional demo with data: :ref:`try-the-demo-project`.

Otherwise simply install from a package using ``pip`` which will install it's `PyPi <https:"" pypi="">`_ packaged dependencies.

.. code-block :: bash

pip install django-periodicals

Install two packages manually to get newer versions than are currently in PyPi:

.. code-block :: bash

$ pip install -e git://

$ pip install -e git://

Install a search backend for use by `Haystack <http:""/>`_. To start install Whoosh:

.. code-block :: bash

$ pip install Whoosh

Add ``periodicals`` and the other applications it uses to ``INSTALLED_APPS``:

.. code-block :: python


Configure your Haystack backend. Here is an example using `Whoosh <https:"" mchaput="" whoosh="" wiki="" home="">`_:

.. code-block :: python

'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,
'BATCH_SIZE': 100,

Configure your reCAPTCHA keys - only used when users add links to Articles or Issues:

.. code-block :: python

RECAPTCHA_PRIVATE_KEY = "your-recaptcha-private-key"
RECAPTCHA_PUBLIC_KEY = "your-recaptcha-public-key"

Choose a URL prefix at which to base the application:

.. code-block :: python

import periodicals

urlpatterns = patterns('',
url(r'^admin/', include(,
url(r'^periodicals/', include(periodicals.urls)),

Management Commands

Create the application's database tables:

.. code-block :: bash

$ python syncdb


0.8.0 (2013-12-14)

* Added tests and attained 100% code coverage.

* Added demo site to GitHub.

* Updated documentation

0.5.0 (2013-10-06)

* Migrated to Django 1.6 using class based views.  
File Type Py Version Uploaded on Size
django-periodicals-0.8.0.tar.gz (md5) Source 2013-12-14 22KB