
This Week in Django is a weekly podcast about all things Django.
This week we talk about a few source commits, the new IRC bot, a few development level proposals, Some cool projects from the community, the Tip of the Week, and a couple of questions from the IRC.
Please see the Show Notes below for all the pertinent information and links
Ogg Edition Available
If you like wearing sandals, eating tofu, and reading Kerouac we now have the Ogg/Vorbis format available for download.
Downloads
AAC Enhanced Podcast (24.0 MB, 41:52, AAC)
MP3 Edition (28.8 MB, 41:51, MP3)
OGG Edition (24.4 MB, 41:51, Vorbis)
The Enhanced Podcast version contains screenshots and easy access links to all of the items we discuss throughout the podcast.
Feeds Available
iTunes Feeds are available. By subscribing using the iTunes feeds the podcasts will automatically be downloaded for you when we release them. Show us some iTunes love.
iTunes Feeds
This Week in Django – AAC Edition
This Week in Django – MP3 Edition
Regular RSS Feeds
This Week in Django – AAC Edition
This Week in Django – MP3 Edition
Give Us Feedback
Want to give us some feedback on the show? We’re always looking for ideas or suggestions that will help improve each episode. Please contact us at feedback@thisweekindjango.com.
Show Notes
Big News (0:46)
We have iTunes feeds available.
Tracking Trunk (2:49)
- Fixed Several Auto-Escaping Issues
- Fixed Shortcut to Work with Non-Integer Primary Keys
(7040) - Queryset Refactor Update Method
(7043)– update method added to a queryset. - Queryset Refactor
(7048)– Ported almost all of the raw SQL statements out of the Model class
Community Catchup (11:12)
- New Django Bot on IRC – Django Bot created by Brian Rosner that automates some items in IRC. Source code available on Google Code under the New BSD license.
- Tickets – just include #1234 (pound followed by the ticket number). The DjangoBot will reply with the full url to the ticket.
- Changesets – just include r1234 (a lowercased letter r followed by the changeset number). The DjangoBot will reply with the full url to the changeset. Note that the bracket syntax is not supported.
- Django People Profiles – Send a private message to the DjangoBot with the who command followed by the irc nickname. For instance
/msg DjangoBot who empty. The DjangoBot will reply to you privately some basic profile information on the user followed by a link to the user’s profile page on Django People
- django-profiles – Another fine project by James Bennett, which offers a customized user profile which users can fill out and edit, and which, if desired, can be viewed by other users. This ties into the profile mechanism built into Django’s auth system.
- Proposal to Remove Positional Arguments from
Model.__init__– Discussion raised by Jacob Kaplan-Moss to deprecate initializing models using positional arguments (i.e.p = Person(1, 'Joe Somebody')) in favor of only allowing keyword-argument initialization (i.e. @p = Person(id=1, name=’Joe Somebody’)@).
- Proposal to Future-proof django.template Circular Imports – Discussion brought up by Tom Tobin to move nearly everything out of
django.template.__init__into adjango.template.mainmodule in order to avoid some circular imports.
Tip of the Week (25:29)
This week’s Tip of the Week comes from Matthew Wensing who joined us on the show last week to talk about GeoDjango.
Matt explained that he uses Standalone ModelForms to validate non-form data. By creating a bound form to the data dict to be validated you can then just call the is_valid() method on the form.
IRC Ad Nauseam (30:57)
Backwards Incompatible Changes Information
I’d like to use the really cool date/time picker that is available in the Admin contrib application for my own public facing part of my project. Is this possible?
- Basically you cannot. It is technically possible but it’s likely not worth the trouble.
- The best solution is to find a nice date/time picker from one of the popular javascript libraries, such as jquery, Yahoo! YUI, Dojo, etc…
- IRC FAQ Explanation on the Subject
How can I use a ModelForm to save information to two separate Django models?
- The best way to approach this is to use two separate ModelForms that each get passed into your template.
- You can use the
instance = form.save(commit=False)syntax if you need to manipulate the model information further before saving to the database. - Do not forget to use the
prefixoption on both the initial display (non-POST condition) as well as the view (POST condition) in order to prevent name clashes.

Thanks again for your precious work.
iTunes love? I loathe iTunes more than any other piece of software(Ms WMP included).
The audio production quality is a little weird, why is it so scratchy?
I still appreciate this!
Noah: sounds fine on my end. I apologize if it sounds scratchy to you. Do you notice it more scratchy on my side of things or on brosner’s side of things, or both?