Skip to main content

Django admin app for Pelican blogs.

Project description


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 to the end of your INSTALLED_APPS in


Now, 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'

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 Pelican’s 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:

New Features

  • 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.


  • 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.

Old Features

  • Settings management: change your pelican settings through Django admin and have it automatically working.
  • Posting management: CRUD for blog postings 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.


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

Install using pip:

pip install pelican_admin

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.


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

Project details

Release history Release notifications

This version
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
pelican_admin-0.3.tar.gz (63.1 kB) Copy SHA256 hash SHA256 Source None Dec 12, 2012

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page