This Week in Django 18 - 2008-04-13
This Week in Django is a weekly podcast about all things Django.
This week we talk about Google App Engine, some changes to the QuerySet Refactor branch, the documentation refactor sprint, some cool projects from the community, the Tip of the Week, and a question from the IRC.
Please see the Show Notes below for all the pertinent information and links
Downloads
AAC Enhanced Podcast (31.0 MB, 52:51, AAC)
MP3 Edition (36.3 MB, 52:51, MP3)
OGG Edition (29.0 MB, 52: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.
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 __at__
thisweekindjango.com.
Show Notes
Big News (1:23)
-
. It’s all Python, and “build on Django”, but is it the killer platform?
- – Google code project by Google employees to do some mapping of the backend to App Engine.
- Google App Engine: The good, the bad, and the ugly? – excellent write up by Doug Napoleone.
- Batteries sold separately
- – in depth discussion by Niall Kennedy.
Tracking Trunk (14:55)
-
ORACLE backend LIKE switched to LIKEC
(7412)
– LIKEC is used when characters are represented in Unicode complete character semantics. A composed character is treated as one character.
Branching & Merging (16:40)
-
Boolean Evaluation of cached Empty QuerySets was returning True
(7417)
–_QuerySet.__nonzero__
unconditionally was returningTrue
when the result cache is populated, even if nothing is in the cache.-
Cleaned up changes from 7417
(7419)
– Less indentation for the win.
-
Cleaned up changes from 7417
-
When using
select_related
with a nullable FK an inner join was being used(7418)
– Now it uses a LEFT OUTER join if the foreign key is nullable.
- – Malcolm Tredinnick posted on the Django User’s list that he is pretty close to merging queryset-refactor into trunk.
Community Catchup (24:14)
- Minor Correction – The Django book, , has two other contributing authors, Jeffrey Forcier and Wesley J. Chun. Wesley Chun is also the author of , another great book.
- – by Mark Lutz and David Ascher.
- – Django-Developers mailing list is for people developing the internals of Django, not general developers using the Django web framework. This is just part of the growing pains.
-
Django Plugables – Django site to be a centralized repository for django projects.
- Lessons Learned – Eric Florenzano posted an excellent post in relation to the Django Plugables release and his own community project, Django Apps. He prefaces the post with an great quote by George S. Patton, “A good plan, violently executed now, is better than a perfect plan next week.”
- Django Dash – contest for django site writing.
- DjangoBot / DjangoPeople Integration – Simon Willison and Brian Rosner teamed up to provide a two way integration with the two services. DjangoBot now will report back to DjangoPeople.net when you are active in any of the Django related channels it lives in. This all goes without saying that it can be turned off in your privacy settings on DjangoPeople.net. This will only occur if you have a DjangoPeople.net account AND have given your IRC handle. You will be notified the first time the bot sees you and begins tracking you with a Private Message.
- Multiple Inheritance of ModelForms and NewForms – Simon Willison presents a solution to this problem in a Django Snippet. It’s a bit hairy but if you have this requirement then this seems like a great way to solve the issue.
Tip of the Week (44:41)
Calling the delete
method on a related object deletes the many side objects too, but does not call the delete
method on the many side. There is an easy way to accomplish the same thing using signals.
- Ticket 6565 – discusses this issue and the solution.
class B(models.Model):
a = models.ForeignKey(A)
def pre_delete(self):
print 'deleting b'
def delete_b(sender, instance, signal, *args, **kwargs):
instance.pre_delete()
dispatcher.connect(delete_b, signal=signals.pre_delete, sender=B)
IRC Ad Nauseam (48:38)
Backwards Incompatible Changes Information
“I setup my static media according the documentation. The admin is showing up properly but none of my own stylesheets or images are being served.”
You likely have the ADMIN_MEDIA_PREFIX
set to the same thing as your MEDIA_URL
setting.
-
ADMIN_MEDIA_PREFIX set to /admin_media/ in settings template
(#2891)
– Ticket that proposed the change to remove the confusion, but closed as wontfix.
Thank You! (51:15)
- For more brosner goodness, check out http://oebfare.com/.