I've worked with SQL for a long time, with a variety of implementations and front-ends. Django's object model hurt my head. I didn't get it. There's simply too much black magic.
e.g, how is:
Entry.objects.filter(
headline__startswith='What').exclude(
pub_date__gte=datetime.now()).filter(
pub_date__gte=datetime(2005, 1, 1))
(from http://www.djangoproject.com/documentation/db-api/)easier than:
SELECT * from Entry where headline like "What%" and pub_date... wha? see? wtf is that chaining filter actually doing?
my 2 cents: write your own DB access layer, fight the obscure black magic.(nothing but quibbles with the templating engine, though)