Django admin for Pelican blog.
Python JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.idea Updating webservice's URL. Dec 12, 2012
.DS_Store v0.1 Nov 26, 2012
CHANGES.txt v0.2. Internationalization, django-admin-tools module Nov 29, 2012
LICENSE.txt Bugfixing Dec 11, 2012 Update May 29, 2013
ss2.png v0.2. Internationalization, django-admin-tools module Nov 29, 2012
ss3.png v0.2. Internationalization, django-admin-tools module Nov 29, 2012


PyPi version PyPi downloads

pelican_admin was developed to assist you manage your Pelican blog.

This is a beta release and will have upcoming new features.


Insert pelican_admin at the end of your INSTALLED_APPS in


You must tell pelican_admin what's the path to you pelican blog. In your you must add:

PELICAN_PATH = '/path/to/your/blog'
PELICAN_SETTINGS = ' # The default value is ''
PELICAN_BIN = 'pelican' # Path to pelican executable. Default value is '/usr/local/bin/pelican'

Now, don't forget to sync your db with:

python syncdb

Or, if you're using south:

python migrate pelican_admin

pelican_admin is already set to run the pelican service for you. It'll be running in the autoreload mode in the background.

If you're using django-admin-tools there's a module available where you can manage your pelican service via admin interface. Add pelican_admin to your

import pelican_admin

url_patterns = patterns('', 
    url(r'^admin/', include(,
    url(r'^admin_tools/', include('admin_tools.urls')),

urlpatterns += pelican_admin.pelican_urls()

And finally, add pelican_admin's module to your

from pelican_admin.modules import PelicanAdmin

class CustomIndexDashboard(Dashboard):

    def init_with_context(self, context):

This module is super useful not only to check pelican's service status, but also to reload it if any change you made doesn't load.

If you experience any troubles in this step and your django-admin-tools interface is scrambled, you may have too many modules in your dashboard. I never found out why, but my experience with django-admin-tools never allowed lots of modules, so just try removing some things you don't use.

The Looks

This is how pelican_admin's module for django-admin-tools looks like when enabled:






  • Metadata management: Now you can manage your posts' metadatas via interface since, now, they're attributes of your posts.
  • Category model: Though category is just another post metadata, it was made to be an model to ease filtering, insertion, etc.
  • View Draft button: In the blog post edit page there's a new button called View Draft to help you visualise the post you're writing in your blog. It simply set the status metadata as draft in that post.
  • Better post management: Blog posts had a very bad management earlier. Now the model list page has filters, more fields being displayed, search, date hierarchy, etc.


  • Settings management: change your pelican settings through Django admin and have it automatically working.
  • Posting management: CRUD for blog posting via interface.
  • Service management: Manage your pelican service through the admin interface
  • Internationalization: pelican_admin is localizable. Currently only pt_BR and en_US are officially supported.


  • Encoding issues: Some people were experiencing encoding issues when pelican_admin attempted to write special characters. Some of it were solved, but if you find any mode problems, please, let me know.
  • Slow build: Due to poor programming, pelican_admin was taking a very long time to run it's

Known Issues

pelican_admin is running pelican's service in background as a subprocess, but I wasn't able to kill it when python dies. Currently there's a method registered in atexit therefore, if python dies normally, the background service is killed with no trouble, but if python crashes, the method registered isn't called and pelican's service may still be running in background.

Other than that, when you're running Django in "development mode" ( runserver), every time you update a Setting in pelican_admin, Django is reloading. I'm still to find out why.

If pelican raises an Exception from within it's Generators, pelican_admin thinks it's still running since the subprocess doesn't die, even though it's running in the background. When an Exception like that occurs, pelican's process simply halts.


I'll just assume you're already familiarised with pelican and move on.

Install using pip:

pip install pelican_admin --upgrade

Or you can clone the project and install it via:

python install


Migration From Older Versions

When you migrate, whether installing from pip or cloning the repository, do not forget to sync the app. You can either do it through Django or using south, though south is better because you won't lose any data.

Check This Out

  1. GitHub Repository
  2. PyPi package
  3. Owner's website
  4. Owner's Blog


If you have any comments, ideas questions, feedback, etcetera, email me and we'll be in touch. I'm