
This Week in Django is a weekly podcast about all things Django.
This week we talk our experience of PyCon 2008, the Django Sprint, a whole host of changesets, and updates on the Queryset Refactor and NewForms-Admin branches.
Plus, new music from Django’s own Adrian Holovaty.
Please see the Show Notes below for all the pertinent information and links
Downloads
AAC Enhanced Podcast (40.9 MB, 50:11, AAC)
MP3 Edition (34.5 MB, 50:11, MP3)
OGG Edition (28.0 MB, 50:11, 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.
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
This Week in Django – OGG 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 <i>at</i> thisweekindjango.com.
Show Notes
New intro/outro music graciously performed by Adrian Holovaty. Check out Adrian’s performance pieces on YouTube.
PyCon Thoughts (1:37)
We discuss our PyCon 2008 experience and the Django Sprint.
Tracking Trunk (6:37)
- Beefed up caching of ContentType lookups by adding
ContentType.objects.get_for_id()(7216)– This shares the same cache asget_for_model(), and thus things that do lots of content type lookups by ID will benefit. Also allowed for a performance improvement to generic foreign keys and multiple lookups on the content type in Changeset 7228.
- Implemented
django.contrib.formtools.wizard(7236)– implements a multi-page form, validating between each step and storing the form’s state as HTML hidden fields so that no state is stored on the server side. See Form Wizard Document for more information.
- Fixes the assignment of IDs to SelectDateWidget
(7291)– Also see Changeset 7337 which makes adds error robustness and stores the original date entered even if it is bogus.
- Fixes the serialization of the FileField
(7293)– Serialize a FileField using its filename from the database, not external URL.
- Better error handling around syndication feeds when all the extra URL bits are missing
(7295)– This will properly render a 404 instead of aAttributeError. Docs and tests merged in Changeset 7328
- Added a new and improved Paginator class
(7306)– allows you to pass a Page object to the template instead of 5 or 6 separate variables. ObjectPaginator still exists for backwards compatibility but issues a DeprecationWarning. Affectslist_detail.object_listin Changeset 7307. See Pagination Documentation for more information.
- Added better checking of project names when using
startproject(7320)– Now it attempts to import the name. If the import is successful, then the name can not be used.
- Added FilePathField to NewForms
(7323)– This field allows choosing from files inside a certain directory. See FilePathField Documentation for more information.
- Switch Syndication Feeds to use
RequestContext(7324)– Allows access to things likeMEDIA_URL.
- Easy to add custom labels to
ModelChoiceField(7326)– This is possible through subclassing. See ModelChoiceField Documentation for more information. See Overriding ModelChoiceField labels for why you are glad this change was made.
- More portable way to get the
tmpdirlocation on Windows(7328)– This fixes Windows so that you can use the new file-based session backend.
- Allow model instances to be used as a default for ForeignKeys via a callable
(7331)– See the regression tests on the changeset for an example of usage.
- Added an
is_ajax()method toHttpRequest(7334)This uses the de facto standard header for detecting anXmlHttpRequestcall, and is therefore supported by all the big Javascript libraries. There’s a proposal to switch to a simple Ajax debug page while debugging based on a Django Snippet 650.
Branching and Merging (33:20)
- Update on the status of NewForms-Admin Branch
ManyToManyRawIdWidgetno longer allows wrong data being sent to the database. Admin widgets tests are now in regressiontests.(7262)- Cleaned up the implementation and APIs of all the formset classes. Backwards-incompatible.
(7270) - Collapsed some of the add/change hooks into a single get method that takes an optional obj argument. Backwards incompatible.
(7275)
** Django-Developers Discussion on Form Filters
- Update on the status of Queryset Refactor Branch
- added
noneon the QuerySet(7232)– I have my own QuerySet now. - improved
valuesto be able to pull across relationships (except Many to Many)(7230)and also Changeset 7343 - lots of speed optimizations in the iterator code and
getlookups(7246)and also Changeset 7248 - lots of fixes to properly support situations where you’re using abstract base classes or multi-model inheritance
- fixes to get Oracle backend working properly
(7321)
- added
Comments - 4 people have already said something. Join the discussion.
Jannis Leidel said…
Pah, what a great summary! Thanks guys for your show. The new theme music hits the nail on the head :)
Empty said…
Malcolm: Thanks for the clarifications. Yeah I figured we got some stuff wrong. Still not sure what universe I'm from. Regarding the list() issue, I'm looking forward to that blog post.
Tomek Paczkowski said…
Hi!
Link to this post is broken in feed. It points to http://www.djangonetcasts.com/twid/episode/15/ but that page does not exists (at the time of writing).
Paul said…
Good stuff. I enjoy the changeset runthroughs especially.
I like the new intro/outro. Now you just need to rip out the rest of the non-Gypsy music in the middle!