I just recently helping a friend launch his photography website, done entirely in Django 1.1.

I'm pretty impressed by how much Django has improved since the 0.96 days. The best new feature IMO is the addition of annotate and aggregate in the db models. (see documentation)

The forms (previously known as newforms), generic views, and automatic admin makes developing new websites a breeze.

My biggest gripe with Django is still the template engine. With more advanced template engines available for Python (Mako, Jinja2, Genshi), it would be nice if Django is able to support those nicely. You could technically write your own render_to_response function that uses, say Jinja2, but then you're still stuck with Django's template engine for admin and generic views. Oh well.

Why use another engine? Not because they're faster (I highly doubt your bottleneck is template rendering), but because they have more advanced feature sets. With Django, there are cases where I'm forced to not adhere to the DRY philosphy. For example, if I want to define a block of text/HTML in a child template and have it applied to more than one location in the parent. In Mako I can use a `` block, and in Jinja2 I can use `macro`. In Django, I'd have to define two or more `block`s with the exact same content. Yes, it could technically be done in the views, but it may not be possible if you're using generic views, and sometimes it just doesn't make sense when you're not dealing with data from models.

And I also wish Django had a Pylons' interactive debugger. That thing is genius!

All in all, I still love the Django pony. Like I said, it makes website development a breeze.

blog comments powered by Disqus