skip to navigation
skip to content

Not Logged In

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 <>`_ 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 <>`_.


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 <>`_ 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 <>`_. 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 <>`_:

.. 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,
            'INCLUDE_SPELLING': True,
            '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
  • Downloads (All Versions):
  • 3 downloads in the last day
  • 24 downloads in the last week
  • 156 downloads in the last month