This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

A djangoCMS 3 blog application.

Supported Django versions:

  • Django 1.6
  • Django 1.7
  • Django 1.8

Supported django CMS versions:

  • django CMS 3.x


Starting from version 0.3 the length of the meta_description and meta_title fields has been changed according to the most common defaults for search engines. Existing data will not be affected, but widgets that enforce the length for new data is now being used.


Starting from 0.3 BlogLatestEntriesPlugin and BlogAuthorPostsPlugin the plugin API has changed: BlogLatestEntriesPlugin.get_posts, BlogAuthorPostsPlugin.get_authors requires the request argument. Templates has been changed to use a context variable instead. Please update your plugin templates accordingly.


Starting from version 0.5, this package does not declare dependency on South anymore; please install it separately if using this application on Django 1.6.


Install djangocms-blog:

pip install djangocms-blog

Add djangocms_blog and its dependencies to INSTALLED_APPS:


Then sync and migrate:

$ python syncdb
$ python migrate

External applications configuration

Dependency applications may need configuration to work properly.

Please, refer to each application documentation on details.

Quick hint

The following are minimal defaults to get the blog running; they may not be suited for your deployment.

  • Add the following settings to your project:

        'easy_thumbnails': 'easy_thumbnails.south_migrations',
        'taggit': 'taggit.south_migrations',
  • If you are using Django 1.7+, be aware than filer < 0.9.10, cmsplugin_filer and django-cms < 3.1 currently requires you to setup MIGRATION_MODULES in settings:

       'cms': 'cms.migrations_django', # only for django CMS 3.0
       'menus': 'menus.migrations_django',  # only for django CMS 3.0
       'filer': 'filer.migrations_django',  # only for django filer 0.9.9 and below
       'cmsplugin_filer_image': 'cmsplugin_filer_image.migrations_django',

    Please check django CMS installation, cmsplugin-filer README for detailed information.

  • Configure parler according to your languages:

        1: (
            {'code': 'en',},
            {'code': 'it',},
            {'code': 'fr',},
  • Add the following to your

    url(r'^taggit_autosuggest/', include('taggit_autosuggest.urls')),
  • To start your blog you need to use AppHooks from django CMS to add the blog to a django CMS page:

    • Create a new django CMS page
    • Go to Advanced settings and select Blog from the Application selector;
    • Eventually customise the Application instance name;
    • Publish the page
    • Restart the project instance to properly load blog urls.
  • Add and edit blog by creating them in the admin or using the toolbar, and the use the django CMS frontend editor to edit the blog content:

    • Create a new blog entry in django admin backend or from the toolbar
    • Click on “view on site” button to view the post detail page
    • Edit the post via djangocms frontend by adding / editing plugins
    • Publish the blog post by flagging the “Publish” switch in the blog post admin


To ease the template customisations a djangocms_blog/base.html template is used by all the blog templates; the templates itself extends a base.html template; content is pulled in the content block. If you need to define a different base template, or if your base template does not defines a content block, copy in your template directory djangocms_blog/base.html and customise it according to your needs; the other application templates will use the newly created template and will ignore the bundled one.


  • Placeholder content editing
  • Frontend editing using django CMS 3.0 frontend editor
  • Multilingual support using django-parler
  • Support for Twitter cards, Open Graph and Google+ snippets meta tags
  • Optional support for simpler TextField-based content editing
  • Multisite support (posts can be visible in one or more Django sites on the same project)

Import from Wordpress

If you want to import content from existing wordpress blog, check and this gist as a base.


  • BLOG_ENABLE_COMMENTS: Whether to enable comments by default on posts; while djangocms_blog does not ship any comment system, this flag can be used to control the chosen comments framework; (default: True)
  • BLOG_USE_PLACEHOLDER: Post content is managed via placeholder; if False a simple HTMLField is used; (default: True)
  • BLOG_USE_ABSTRACT: Use an abstract field for the post; if False no abstract field is available for every post; (default: True)
  • BLOG_IMAGE_THUMBNAIL_SIZE: Size of the main image when shown on the post lists; it’s a dictionary with size, crop and upscale keys; (default: {'size': '120x120', 'crop': True,'upscale': False})
  • BLOG_IMAGE_FULL_SIZE: Size of the main image when shown on the post detail; it’s a dictionary with size, crop and upscale keys; (default: {'size': '640x120', 'crop': True,'upscale': False})
  • BLOG_PAGINATION: Number of post per page; (default: 10)
  • BLOG_LATEST_POSTS: Default number of post in the Latest post plugin; (default: 5)
  • BLOG_POSTS_LIST_TRUNCWORDS_COUNT: Default number of words shown for abstract in the post list; (default: 100)
  • BLOG_MULTISITE: Add support for multisite setup
  • BLOG_AUTHOR_DEFAULT: Use a default if not specified; if set to True the current user is set as the default author, if set to False no default author is set, if set to a string the user with the provided username is used; (default: True)

Social media tags settings

  • BLOG_TYPE: Generic type for the post object; (default: Article)
  • BLOG_FB_TYPE: Open Graph type for the post object; (default: Article)
  • BLOG_FB_APPID: Facebook Application ID
  • BLOG_FB_PROFILE_ID: Facebook profile ID of the post author
  • BLOG_FB_PUBLISHER: Facebook URL of the blog publisher
  • BLOG_FB_AUTHOR_URL: Facebook profile URL of the post author
  • BLOG_FB_AUTHOR: Facebook profile URL of the post author
  • BLOG_TWITTER_TYPE: Twitter Card type for the post object; (default: Summary)
  • BLOG_TWITTER_SITE: Twitter account of the site
  • BLOG_TWITTER_AUTHOR: Twitter account of the post author
  • BLOG_GPLUS_TYPE: Google+ Snippet type for the post object; (default: Blog)
  • BLOG_GPLUS_AUTHOR: Google+ account of the post author


0.5.0 (2015-08-09)

  • Add support for Django 1.8
  • Drop dependency on Django select2
  • Code cleanups
  • Enforce flake8 / isort checks
  • Add categories menu
  • Add option to disable the abstract

0.4.0 (2015-03-22)

  • Fix Django 1.7 issues
  • Fix dependencies on python 3 when using wheel packages
  • Drop Django 1.5 support
  • Fix various templates issues
  • UX fixes in the admin

0.3.1 (2015-01-07)

  • Fix page_name in template
  • Set cascade to set null for post image and thumbnail options

0.3.0 (2015-01-04)

  • Multisite support
  • Configurable default author support
  • Refactored settings
  • Fix multilanguage issues
  • Fix SEO fields length
  • Post absolute url is generated from the title in any language if current is not available
  • If djangocms-page-meta and djangocms-page-tags are installed, the relevant toolbar items are removed from the toolbar in the post detail view to avoid confusings page meta / tags with post ones
  • Plugin API changed to filter out posts according to the request.
  • Django 1.7 support
  • Python 3.3 and 3.4 support

0.2.0 (2014-09-24)

  • INCOMPATIBLE CHANGE: view names changed!
  • Based on django parler 1.0
  • Toolbar items contextual to the current page
  • Add support for canonical URLs
  • Add transifex support
  • Add social tags via django-meta-mixin
  • Per-post or site-wide comments enabling
  • Simpler TextField-based content editing for simpler blogs
  • Add support for custom user models

0.1.0 (2014-03-06)

  • First experimental release
Release History

Release History


This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
djangocms_blog_martin-0.5.1.dev3-py2.py3-none-any.whl (92.0 kB) Copy SHA256 Checksum SHA256 py2.py3 Wheel Aug 11, 2015
djangocms-blog-martin-0.5.1.dev3.tar.gz (46.8 kB) Copy SHA256 Checksum SHA256 Source Aug 11, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting