The urllib2 used should respect the HTTP cache headers returned from the service. So I don't see a reason to implement caching a second time on the Django level.