Having trouble convincing your superiors that Django is a proven and reliable technology? Several Django developers at OSCON had that sort of issue. Coming out of those talks, Rob Hudson is now looking for individuals and companies who have had success with Django to contribute “Django success stories” to the Django wiki. Please add your own, and keep an eye on the page if you’re looking for that extra bit of ammunition to further your Django advocacy at work.

James Tauber has wanted a complete implementation of the Atom Publishing Format in Django for a long time: “You can’t produce full-content feeds without some hacking and the more advanced features of Atom are not supported. And Django certainly doesn’t have support for the Atom Publishing Protocol, which just got approved as an IETF Proposed Standard.” Just this past week, James has begun his project at Google Code, django-atompub to see his ambitions realized. The project’s first phase will be to complete the publishing format, but the future plans include fully implementing APP (Atom Publishing Protocol), which looks as if it will be bit more challenging—but certainly more rewarding as well.

Producing Django applications that can be cleanly distributed and included into other people’s projects has been a hot topic on the mailing lists this past week. The result of this discussion are many updates, clarifications, and new information on the Best Practices to Work with 3rd Party Apps wiki page: “Working with 3rd party / reusable applications used to be a pain for me as they are meant to live outside of your project folder structure, they either needed to live in your python site-packages folder or added to the python path; otherwise you would not be able to include them in your INSTALLED_APPS, use them in your project at all and you will end up seeing lots of “ImportError?: No module named …” type of errors.”

Russell Keith-Magee has developed a patch for the Django testing framework which allows a user to run only individual tests of a particular test suite. If you’d like to test out this new functionality, check out a copy of the Django trunk greater than revision [5769].

Will Larson has developed a handy Django middleware that inserts your Google Analytics javascript code into your templates. Whether or not you find this middleware particularly useful, you may be interested in reading the article anyway. Will does an excellent job of describing the entire process of developing his project, and thus it also serves as a great tutorial on designing your own custom middleware projects.

Nathan Ostgard explains a use-case in which a Django application needs to be completely restricted to logged-in users and where only a few pages can be accessed by anonymous users. This runs contrary to the built-in decorators in Django which allow for specifying which sections of your site should allow authenticated users. Nathan has implemented a custom middleware that restricts all views to logged-in users without having to decorate them all manually. For those pages which need to be accessed by anonymous users, you can use Nathan’s @allow_anonymous decorator.

Jeremy Dunck, Jacob Kaplan-Moss, and Simon Willison gave a talk as OSCON titled Django Master Class which touched on some concepts that are usually left out of most Django presentations. The presentation covers topics such as unit testing, signals, custom fields, OpenID, and more. The slides are online at the link above along with the presenters notes which makes the read even more worthwhile.

Instant Django is a standalone, and portable installation of the Django environment for Windows users: “No installation is required. Simply download the self-extracting executable, double-click, and place the resulting ‘django’ folder in a convenient location. You can even carry it around with you on a USB thumb drive. The portable Django development environment also works with the official tutorial. Be aware that it uses the builtin Django development web server, so it can not and should not be used for deployment of Django projects.”

Are you working with the Facebook API in your Django application? Would you like to? A tutorial has cropped up on the Facebook Developers Wiki that details how you can do just that.

In the final bit of “middleware” news for this roundup, I came across a very interesting bit on DjangoSnippets this past week. This middleware, by exogen, detects when your visitors have arrived from a search engine: “This isn’t actually middleware in the sense that it defines any of the middleware interfaces. It’s intended to be the base for a middleware method that you write, depending on what you want to happen when you detect that the visitor came from a search engine. In the example process_view method, I detect when the request is going to use the object_detail view and log the search query for that object in the database.”

Jared Kuolt’s patch to allow Django’s shortcuts, get_object_or_404 and get_list_or_404, to accept QuerySets has been checked into Django as of revision [5796].