Ever since switching to Django 1.5, I’ve been annoyed by this:

DeprecationWarning: django.conf.urls.defaults is deprecated; use django.conf.urls instead

I’ve been annoyed because I duly made the necessary changes in my project and verified that I’m not using the old module anymore:

grep -rl django.conf.urls.defaults .

Yet I was still getting this warning… Finally I understood (thanks to some googling) that the cause is that one of the apps included in the project are still using the old module. To find out which one, here’s a really elegant solution:

python -W error manage.py runserver

This way deprecation warnings will raise an error and from the stack trace it’s easy to find the perpetrator. In my case it was django-openid-auth, which at version 0.5 is still using the old format. I recently learned about django-social-auth, probably I’ll be switching to that one in the near future.


blog comments powered by Disqus