Journal Migration II: running on Django

I've finally managed to move this weblog over to a custom effort using Django.

MT: I've used Movable Type for nearly 5 years. It's been great but it's also been creaking badly for months. Comments didn't work, the spam/junk interfaces aren't that usable, and editing posts in that little textarea just sucked (by comparison, I'm writing this in fullscreen).

Why? I wanted a lot more control over HTML output and total control over how entries are managed and how metadata is dealt with. Ultimately I want to be able to experiment, strike one thing of my todo list for this year,  and to extend the site freely for personal content management*. I hope that explains why I didn't just use Wordpress, or Google apps or something else. It's always more fun to cook than to eat.

Migration: I only brought some posts across. Actually the site has been running Django for a few days, but 404 requests are passed through to the old disk archives; that's clunky but saves on rewrite rules and puts off the day I have to do a full migration. There are problems with getting data out of movable type, notably comments.

Setup: the site is running via fastcgi; textdrive support will give you a port. MySQL is the backing DB with static media on the filesystem. The code can run multiple weblogs (but still needs work, eg skins and per weblog media assets). In fact, aside from supporting the old URLs, most of the work in building it was wrapping Django's generic views to allow a weblog slug prefix in the URL. I used James Tauber's atom.py extension to give full Atom feed support. There are of course some mod_rewrite rules. Editing and management is done through Django's admin site.

Breakage: no doubt some things will be broken. That's the upside of plugging at code on successive Sunday nights :) I already had some problems with the feed earlier. It's fixed according to the validator, but bloglines seems to not have picked it up yet. if you find something wrong, please eave a comment or mail bill@dehora.net.

Todo: code is never done, so,



* an observation on Jeff's vision, which I find compelling. If Plone had a through the web way to define new content types, it would hit almost all of his requirements. Plone is backed by a content/schema model called Archetypes that does not require new table structures to be created for content types. In turn that facility for arbitrary structured content is provided by ZODB which doesn't have tables. It's interesting because Plone is not the direction I imagine most people using Django would think of going in. Not at all. Plone also has a product/plugin solution for extending sites that is years head of anything I know of in my part of the OSS world, including Wordpress. The problem with Plone is Zope2 is in there.

Tags:

10 Comments


    Google Reader noticed the feed problems earlier as well, but this entry came across perfectly.


    Nice... was thinking of switching to a homegrown Django solution myself. Does this allow trackback comments?


    Scott, good. I think bloglines might not like it yet.

    James, not yet. I'm not sure about trackback - I'd want to have a spam trap in place first.


    FYI, following the "problems with getting data out of movable type" link (http://www.dehora.net/journal/journal...) gave me Django's debugging 404 page, which included all of your URLs/routes. I don't know if you're worried about it, but DEBUG=False in the settings might be a good idea.


    another moderation test


    Want to help with RFC5023 support in django-atompub?


    yet another test comment


    Got here via Bloglines today, it works now.

    Very interesting footnote about Plone; I quite agree with the conclusion too. :-) There's a migration to Zope3 afoot, let's hope it's done within this decade. ;-)

    By the way, who's Jeff?


    > By the way, who's Jeff?

    The guy who hides behind the link "personal content management" that the footnote was a footnote for ;-)


    The link to the industrial design category at http://dehora.net/journal/category/in... is broken. As another ex-industrial designer, I was curious what else you had written about the topic.


Post a comment

Your name:

Comment: