Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Django CMS articles management plugin

Project Description

It is a simple plugin that allows you to organize you article pages in a manner of a blog. It does not break original page publishing workflow, but has some tricks to gather articles into a blog app.


It works fine and tested under Python 2.7. The following libraries are required

  • Django >= 1.5
  • django-cms >= 3.0 (we recommend to use Django CMS 3.0 and higher, contact us if you need prior CMS versions supports and have some issues)


$ pip install cmsplugin-articles

Configure installed apps in your

    # django contrib and django cms apps

Migrate your database migrate cmsplugin_articles


  • Create a page in a common way, it will be a root page, an articles list;
  • Add ArticlesPlugin to the page to you content placeholder, this will show a list of published articles;
  • Create an article page as a child page, it will be shown automatocally in the list.


You can customize this plugin by overriding the following templates

  • cms/plugins/articles.html (plugin template layout)
  • cms/plugins/article_teaser.html (if you want to change teaser template, e.g. use easy-thumbnails for teaser images)
  • cms/plugins/articles_pagination.html (pagination templates, if you want to add extra css classes or so)


The plugin has a number of temlatetags used for teaser template, you should load them in your template with

{% load article_tags %}

published_at, teaser_title and teaser_image

Filters which get article Page instance as an argument

  • published_at return datetime object for publication time
  • teaser_title return teaser title as a string
  • teaser_image return TeaserExtension.image if exists


A simple_tag which returns a teaser text. It accepts two parameters

  • article_page the page that teaser belongs to
  • default_from the placeholder name. You can pass it if you want generate teasers automaticaly


You can use this template tag to split articles list into a column layout, e.g

<div class="row">
  {% exact_columns articles 3 "vertical" as columns %}
  {% for column in columns %}
    <div class="col_6">
      {% for article in column %}
        {% include "cms/plugins/article_teaser.html" %}
      {% endfor %}
  {% endfor %}


  • Python 3 support


The changelog can be found at repo’s release notes


Fork the repo, create a feature branch then send me pull request. Feel free to create new issues or contact me via email.

Release History

This version
History Node


History Node


History Node


History Node


Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(10.4 kB) Copy SHA256 Hash SHA256
Source None Dec 19, 2014

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers