Living on the Edge

This Week in Django 30 - 2008-07-20

Posted on July 21, 2008

This Week in Django is a weekly podcast about all things Django.

This week we discuss the NewForms-Admin merge into Trunk, DjangoCon, a few source commits, some cool projects from the community, and the Tip of the Week.

Please see the Show Notes below for all the pertinent information and links

Downloads

AAC Enhanced Podcast (41.8 MB, 49:31, AAC)

MP3 Edition (34.1 MB, 49:31, MP3)

OGG Edition (27.9 MB, 49:31, 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 (0:47)

Tracking Trunk (15:04)

Community Catchup (26:16)

  • Kevin Fricovsky – joins the This Week in Django team as Community Evangelist. Kevin will be working to produce the show, contacting guests, gathering news items, coming up with ideas. Kevin has been doing this work regularly anyway so it’s great of him to team up with us to help out the program:
  • PyOhio – Reminder that this free one day conference is in Columbus, OH on July 26, 2008.
  • Twitter Search – via Kevin Fricovsky using the new Twitter Search capability to track all tweets about django.

Tip of the Week (38:32)

This tip comes to us via Ben Jao Ming in his post Django auto-translation of field values.

If you need to translate content in a field then gettext is not going to help you out. Since you can create your own custom fields it’s easy to wrap a CharField with the translation behavior:


from django.db import models
from django.utils.translation import gettext_lazy as _

class AutoTranslateField(models.CharField):
    __metaclass__ = models.SubfieldBase
    def to_python(self, value):
        return str(_(value))

Just add whatever translations you know of to the locale file and run compilemessages.

Thank You! (42:45)

Django 1.0-Alpha

Posted on July 21, 2008

In the ongoing march to Version 1.0, the Django project just tagged and bagged the 1.0 Alpha version with Changeset 8037. I encourage everyone to grab the tarball or svn up and start banging on the latest and greatest code.

update: Django 1.0 alpha release notes

update: Django 1.0 alpha released! blog post

NewForms-Admin Migration Screencast!

Posted on July 21, 2008

Brian Rosner just released a new screencast and blog post, newforms-admin Migration and Screencast, that walks you through how to get started with migrating to NewForms-Admin from your existing trunk based code. The screencast and accompanying blog post are very well done. It’s great to get this kind of helpful information, especially from someone that knows so much about the internals of the code.

I highly encourage everyone to check it out, especially if you’re on the fence on whether or not the conversion is worth it. Brian shows how easy it is to get started.

DjangoCon Schedule Available

Posted on July 20, 2008

Robert Lofthouse just announced that the DjangoCon schedule is available. There are a ton of exciting speakers and topics being presented. It’s going to be a great time and I’m looking forward to seeing everyone there. I am curious if people will be extending the conference into the following week and if sprints are being planned. I’d like to make the most of it.

NewForms-Admin Lands in Django Trunk

Posted on July 18, 2008

Brian Rosner just now, with Changeset 7967, merged the NewForms-Admin branch of Django into Trunk. This is a huge step forward in the push to version 1.0. I want to personally thank all of the numerous contributors that have made NewForms-Admin possible. It’s been an enormous amount of work, and I am so appreciative. Thanks!

update: Read the release post.

This Week in Django 29 - 2008-07-13

Posted on July 15, 2008

This Week in Django is a weekly podcast about all things Django.

This week we have a special guest, Kevin Fricovsky, that joins us as we talk about DjangoCon, EuroPython, a few source commits, some cool projects from the community, and the Tip of the Week.

Please see the Show Notes below for all the pertinent information and links

Downloads

AAC Enhanced Podcast (74.2 MB, 1:31:20, AAC)

MP3 Edition (62.8 MB, 1:31:20, MP3)

OGG Edition (51.5 MB, 1:31:20, 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 (3:38)

“DjangoCon 2008. Venue: Googleplex, San Francisco Bay Area. Dates: 6th and 7th Sept. Official post will be on djangoproject.com soon.”

Tracking Trunk (14:27)

Branching and Merging (34:18)

Community Catchup (47:27)

  • django-treemenus – Very cool application by Julien Phalip that makes it easy to add tree menus to your Django app and manage the structure dynamically from the customized admin interface. View the 0.4 release post for more information.
  • First Two Django Screencasts – Eric Florenzano never sleeps. His first foray into screencasts are quite impressive. He covers: 1. Setting up a Django Environment 2. Using Django-Pagination

Tip of the Week (1:10:41)

Mike Axiak offers the following tip for getting started with contributing to Django source code.

1. Find a closed ticket that interests you. 2. Take a look at a closed ticket, but not the patch. 3. Check out the revision prior to the one that closed the ticket. 4. Write a patch for Django with your own implementation. 5. Compare your patch with the committed patch and try to learn from the differences.

Once you’re comfortable do it for real.

Thank You! (1:23:24)

  • Kevin Fricovsky

DjangoCon Officially Announced

Posted on July 13, 2008

There’s been lots of discussion and hints over the past several days about a forthcoming Django based conference called DjangoCon. The official announcement was just released. I’ve always been fond of small intimate group settings and this one will certainly be that with only 200 attendees allowed to participate. I only hope that I get one of the coveted spots.

Cloud27 - A Social Network

Posted on July 12, 2008

This morning I got my first glimpse of what will become Cloud27, featuring a sporty design by Greg Newman, and I already like what I see. Cloud27 is a new social network based on Pinax, a Django reference application for reusable applications.

So if there’s Pinax, why Cloud27? Well Pinax is where all development and new ideas happen. Pinax is project intended to provide a starting point for websites. Cloud27 will actually be focussed on building out on the base of Pinax and expanding it into a kick-ass social network application.

To find out a whole lot more about reusable applications and Pinax, I highly recommend a listen to This Week in Django 24, featuring Pinax / Cloud27 founder James Tauber.

I’ll be keeping an eye on Cloud27.

No TWiD This Week

Posted on July 07, 2008

Apologies to all but there will be no This Week in Django podcast this week. Enjoy the week off and we look forward to seeing you all next week on TWiD Live.

Callcast with Jacob Kaplan-Moss

Posted on July 07, 2008

Kevin Fricovsky at the HIWD (How I Work Daily) blog just posted a very interesting callcast with Jacob Kaplan-Moss, one of Django’s core developer. In the callcast, Jacob discusses a planned DjangoCon 2008 conference to be held in the San Francisco Bay area. The idea of a conference centered around Django sounds very exciting. I highly recommend that you give it a listen.

This Week in Django 28 - 2008-06-30

Posted on July 01, 2008

This Week in Django is a weekly podcast about all things Django.

This week we talk about quite a few source commits (kicking-ass), some cool projects from the community, the Tip of the Week, and a question from the IRC.

Let us know if downloads are better for those of you in Europe.

Please see the Show Notes below for all the pertinent information and links

Downloads

AAC Enhanced Podcast (50.3 MB, 1:01:06, AAC)

MP3 Edition (42 MB, 1:01:06, MP3)

OGG Edition (32.9 MB, 1:01:06, 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

Malcolm Tredinnick is back!!!

Tracking Trunk (1:08)

Community Catchup (19:28)

  • Kss in DjangoKSS is a javascript framework that aims to allow Ajax development without javascript. It uses stylesheets with CSS-compliant syntax to setup behaviours in the client and a set of well-defined commands that are marshalled back from the server to manipulate the DOM.

Tip of the Week (43:49)

Ever need to reorder the fields on your Model Form?


class TranslationForm(BookForm):
    translator = forms.CharField(max_length=40)

    def __init__(self, *args, **kwargs):
        super(TranslationForm, self).__init__(*args, **kwargs)
        self.fields.keyOrder = ['title', 'author', 'translator', 'publisher', 'copyright']

IRC Ad Nauseam (47:10)

Django IRC FAQ

Backwards Incompatible Changes Information

Charlie O’Keefe say, “I’ve gotten into designing restful URL schemes, basically organizing a web app around resources. Learning Django I was frustrated to find that nothing seems to be done this way. Is there any tool that can help with that?”

Thank You! (50:58)

Words Matter

Posted on June 24, 2008

You have to word your invitations carefully. Depending on which way this goes, I might just cozy up to a nice glass of wine.

Django Code Swarm Visualization

Posted on June 24, 2008

In the closing remarks of This Week in Django 26 Brian Rosner pointed out a code swarm visualization created for Python as well as a couple of other open source projects. Well, in typical Brian fashion, he couldn’t leave well enough alone, so he created a wicked cool Django Code-Swarm Visualization. Definitely check this out. Thanks Brian.

This Week in Django 27 - 2008-06-22

Posted on June 23, 2008

This Week in Django is a weekly podcast about all things Django.

This week we talk about the Django Software Foundation, some source commits, some cool projects from the community, a Tip of the Week. and a couple IRC items. It’s a packed show.

Please see the Show Notes below for all the pertinent information and links

Downloads

AAC Enhanced Podcast (55.8 MB, 1:08:08, AAC)

MP3 Edition (46.8 MB, 1:08:08, MP3)

OGG Edition (38.5 MB, 1:08:08, 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

SPONSOR: This Week in Django is brought you by Justin Lilly, who according to all historic accounts, once scissor kicked Angela Landsbury. Thank you Justin.

Big News (2:18)

New foundation for Django – Lawrence-Journal World announces new Django foundation and code commits change license ownership.

Tracking Trunk (5:02)

Branching and Merging (9:50)

Community Catchup (15:57)

  • DebugFooter Redux – Last week we talked about Andreas Marr very cool Django Snippet to add debug information into the footer of each webpage. This week he did it one better based on some suggestions from our program. Now that’s what I call Podcast Driven Development™.

Tip of the Week (43:22)

This tip comes from Alexander Solovyov in his blog post Render To Improved.

Sometimes you want to return a RequestContext from a view. One way to do that is to specify the response code using a decorator.


@render_to('mytemplate.html')
def myview(request):
  return ({'id': 1, 'name':'empty'})

# example with override
@render_to('mytemplate.html')
def myview(request):
  return ({'name':'empty'}, 'override.html')

# python 2.3 example with override
def myview(request):
  return ({'name':'empty'}, 'override.html')
myview = render_to(myview, 'mytemplate.html')

You can also return a tuple where the second item is a string that overrides the default template specified in render_to.

IRC Ad Nauseam (51:11)

Django IRC FAQ

Backwards Incompatible Changes Information

What’s the difference between Abstract Base Classes and Multi-Table Inheritance?

Abstract Base Classes are where you provide a base class, like Person, and then a derived class like Employee. Django will create a single database table for the Person model that contains the combined fields from both the base and derived classes.

Multi-Table Inheritance also has the base and derived class but at the database level you end up with two tables: one for the base class and one for the derived class, with a one-to-one field added in to connect the two.

Again, we highly recommend the excellent post by Kevin Fricovsky that we mentioned in Community Catchup. Plus, as always, the excellent Django documentation.

Is there a way to pass the filter arguments as string to the QuerySet?

QuerySet parameters are standard Python keyword arguments, and can use standard keyword argument expansion.


Post.objects.filter(datetime__year=2008)

Post.objects.filter(**{'datetime__year': 2008})

Thank You!

Hacking Pythons

Posted on June 23, 2008

Someone is very creative. I love it!

“What the hell is going on? This is fucking incredible.” Jacob Kaplan-Moss said. Kaplan-Moss is the chief architect of Django and said nothing like this had ever happened before. “They’re all naked, and these chicks don’t shave anything!”

Werkzeug Debugger in Django

Posted on June 21, 2008

A new feature to come to the Django-Command-Extensions project is the implementation of a new management command called runserver_plus. For now the “plus” part means that I’ve replaced the standard Django traceback pages with the Werkzeug Debugger traceback page in it’s place.

Getting Started

This item requires that you have the Werkzeug WSGI utilities installed, in addition to the django-command-extensions app.

To get started we just use the `runserver_plus` command instead of the normal `runserver` command:


$ python manage.py runserver_plus

 * Running on http://127.0.0.1:8000/
 * Restarting with reloader...
Validating models...
0 errors found

Django version 0.97-newforms-admin-SVN-unknown, using settings 'screencasts.settings'
Development server is running at http://127.0.0.1:8000/
Using the Werkzeug debugger (http://werkzeug.pocoo.org/)
Quit the server with CONTROL-C.

Note: all normal runserver options apply. In other words, if you need to change the port number or the host information, you can do so like you would normally.

Using

Whenever we hit an exception in our code, instead of the normal Django traceback page appearing, we see the Werkzeug traceback page instead.

Along with the typical traceback information we have a couple of options. These options appear when you hover over a particular traceback line. Notice that two buttons appear to the right:

The options are:

View Source

This displays the source below the traceback:

Being able to view the source file is handy because you are able to get more context information around where the error occurred. The actual traceback areas are highlighted so they are easy to spot.

One awkward piece about this is that the page is not scrolled to the bottom. At first I thought nothing was happening because of this.

Interactive Debugging Console

When you click on this button a new pane will open up below the traceback line you’re on. This is the money shot:

An ajax based console appears in the pane and you can begin debugging away. Notice in the screenshot above I did a print environ to see what was in the environment parameter coming into the function.

Summary

I’ve only been using the Werkzeug debugger on my Django projects for a day now. But I’m loving it. I encourage you to check it out. Plus if you’re not a current Django-Command-Extensions user, you’re going to find tons of really cool additions in there.

WARNING: This should never be used in any kind of production environment. Not even for a quick check into a problem. I cannot emphasize this enough. The interactive debugger allows you to evaluate python code right against the server. You’ve been warned.

This Week in Django 26 - 2008-06-16

Posted on June 17, 2008

This Week in Django is a weekly podcast about all things Django.

This week we talk about the Django 1.0 Roadmap, EuroPython Sprint, tons of source commits, great stuff happening in the NewForms-Admin branch, some cool projects from the community, and the Tip of the Week.

Please see the Show Notes below for all the pertinent information and links

Downloads

AAC Enhanced Podcast (32.4 MB, 55:28, AAC)

MP3 Edition (38.1 MB, 55:28, MP3)

OGG Edition (30.8 MB, 55:28, 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:37)

EuroPython Django Sprint – We are holding an official Django sprint, July 10th until saturday July 12th, during the EuroPython conference. Join us in the push to 1.0.

Tracking Trunk (9:19)

  • Fixed serialization for multi-model inheritance (7600)
    • Serializers were including all superclass fields in their output. Now only local fields are included.
    • Implicit OneToOne? primary keys were not correctly added to the metamodel, so they were always marked to be serialized, even though they were primary
    • Model saving was too aggressive about creating new parent class instances during deserialization. Raw save on a model now skips saving of the parent class.

Branching and Merging (17:06)

Community Catchup (29:58)

  • Django Dash Results – Congratulations to all the participants. Check the results for information on all the winners.
    • 1st Place – Benjamin Pollack and Tyler Hicks-Wright – Their site was a code review site with Mercurial integration.
    • 2nd Place – Eric Florenzano and Tony HauberFeedalizer is a syndication feed aggregation based on popular feeds ranked by users.
    • 3rd Place – Justin Lilly and Jannis Leidel – A site connecting developers & translators with rankings for translators and groupings.
  • A Better Serialization Framework – A series of interesting posts by fiam on creating what he calls a better serialization framework.

Tip of the Week (41:59)

If you have a template tag that you want to automatically load into context for all of your templates, you can take the same approach Django does with the built-in template tags.

This must be done early on in the load process, so in your __init__.py for the app or project, just do:


from django.template import add_to_builtins
add_to_builtins('template_utils.templatetags.generic_content')

Thank You! (44:56)

  • Code Swarm – Python – amazing swarm representation of Python code commits over years of time. You have to see this!

This Week in Django 25 - 2008-06-08

Posted on June 09, 2008

This Week in Django is a weekly podcast about all things Django.

This week we talk about a few source commits, a discussion about releases, Some cool projects from the community, and the Tip of the Week.

We liked this one so much we decided to record it twice!

Please see the Show Notes below for all the pertinent information and links

Downloads

AAC Enhanced Podcast (42.9 MB, 52:57, AAC)

MP3 Edition (36.4 MB, 52:57, MP3)

OGG Edition (28.3 MB, 52:57, 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

Tracking Trunk (4:05)

Community Catchup (15:58)

  • Django India – Google Group discussion for Django developers in India.
  • django-arcade – a Django pluggable app that gets a constantly updating list of flash games and swf files every day that you can include with a template tag into any project you want.

Tip of the Week (44:00)

Onno Timmerman sends us this tip with doing Internationalization.

I needed to give someone a django.po file. Normaly a user wants to edit it with Microsoft Word, even when you ask not to they tend to do it! Poedit is a great program that makes it easy to edit these files.

Poedit

Thank You! (45:39)

Intermediate Models – Ticket 6095 – Worked on by Eric Florenzano

Brian Rosner

Junk in the Trunk by Campfire Dusty Rootin’ Tootin’ Sing-A-Longs & Campfire Ditties

This Week in Django 24 - 2008-06-01

Posted on June 02, 2008

This Week in Django is a weekly podcast about all things Django.

This week Eric Florenzano fills in while Michael is out. We talk to James Tauber about who he is and what Pinax is. A few trunk changes and some community bits.

Please see the Show Notes below for all the pertinent information and links

Downloads

AAC Enhanced Podcast (32.7 MB, 44:47, AAC)

MP3 Edition (41.7 MB, 44:47, MP3)

OGG Edition (53.7 MB, 44:47, Vorbis)

The Enhanced Podcast version contains screenshots and easy access links to all of the items we discuss throughout the podcast.

Quick note, Brian Rosner did the audio in Michael’s absence. Its not as good as what Michael produces, but he is getting better with it :)

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 (0:25)

We’re back! Apologizes for last week’s cancellation. Michael’s wife gave birth to their 2nd child, Lucas Matthew Trier. Welcome to the world, Lucas!

James Tauber Interview (1:12)

  • James is the CTO at US-based startup mValent.
    • Tell us a little about mValent? Is Django involved?
  • How did you come to find and use Django?

Tracking Trunk (31:51)

Community Catchup (35:09)

  • sleepy-django – Sleepy, allows you to create a static site by rendering Django templates to HTML.

Thank You! (39:08)

  • Special thanks to Brian Rosner for handling the show production this week. You did an awesome job man.

Django Command Extensions Update

Posted on May 29, 2008

Since I published my introductory post on the django-command-extensions project, I have not posted any additional updates regarding the project. Quietly, there’s been tons of work happening, and so I thought I would give some visibility to all of the great contributions to the effort.

As a review, the django-command-extensions project is a repository for collecting global custom management extensions for the Django Framework.

Since the project was started there has been an additional twelve commands added. The bulk of the work has been headed up by Ido Sebastiaan van Oostveen, with some additional work by Doug Napoleone and Ludvig Ericson. Personally, I haven’t had much involvement in the development beyond a few initial commands. Although, I have been a satisfied customer of the extensions, such that it has become a staple for all of my Django projects.

So on to the fun stuff. Here’s a list of commands in the project:

  • create_app – creates an application directory structure for the specified app name. This command allows you to specify the --template option where you can indicate a template directory structure to use as your default.
  • create_command – creates a command extension directory structure within the specified application. This makes it easy to get started with adding a command extension to your application.
  • create_jobs – Creates a Django jobs command directory structure for the given app name in the current directory. This is part of the impressive jobs system.
  • create_superuser – makes it easy to create a superuser for the django.contrib.auth.
  • describe_form – used to display a form definition for a model. Copy and paste the contents into your forms.py and you’re ready to go.
  • export_emails – export the email addresses for your users in one of many formats. Currently supports Address, Google, Outlook, LinkedIn, and VCard formats. I have found this really handy.
  • generate_secret_key – creates a new secret key that you can put in your settings.py module.
  • GraphModels – creates a GraphViz dot file. You need to send this output to a file yourself. Great for graphing your models. Pass multiple application names to combine all the models into a single dot file. This one is very useful with lots of options for flexibility. See the wiki page for detailed information.
  • passwd – makes it easy to reset a user’s password
  • run_job – run a single maintenance job. Part of the jobs system.
  • run_jobs – runs scheduled maintenance jobs. Specify hourly, daily, weekly, monthly. Part of the jobs system.
  • runprofileserver – starts runserver with hotshot/profiling tools enabled. I haven’t had a chance to check this one out, but it looks really cool.
  • shell_plus – An enhanced version of the Django shell. It will autoload all your models making it easy to work with the ORM right away. I use this every day. It is so handy.
  • show_urls – displays the url routes that are defined in your project. Very crude at this point.
  • sqldiff – prints the (approximated) difference between an apps models and what is in the database. This is very nice, but also very experimental at the moment. It can not catch everything but it’s a great sanity check.

On the documentation front, Ido has been actively putting together some installation and usage instructions to help people get started. We still have quite a few undocumented commands so if you would like to pitch in, we appreciate your help.

If you like using Mercurial, Ido maintains a Mercurial repository for the project. You can find more information on using his repository on the wiki page.

I would like to thank Ido Sebastiaan van Oostveen for his help. He’s really taken a leadership role and contributed a lot of great stuff. Additionally he’s been fleshing out the documentation and managing the tickets / patches.

Finally, if you would like to get involved in the project, we’re always looking for people to help out. Feel free to submit patches or bug / enhancement reports. If you would like to contribute directly, please let me know.

This Week in Django - Cancelled

Posted on May 26, 2008

Due to the Memorial Day Weekend and the lack of any pressing news, we’ve decided to cancel the show this week. Brian Rosner and I hope you all have an opportunity to spend time with family and friends. We’ll be doing the same.

This Week in Django 23 - 2008-05-18

Posted on May 20, 2008

This Week in Django is a weekly podcast about all things Django.

This week we talk about PyOhio, a source commit, Some cool projects / posts 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 (21.3 MB, 35:18, AAC)

MP3 Edition (24.3 MB, 35:18, MP3)

OGG Edition (19.5 MB, 35:18, 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:14)

  • PyOhio – Regional Python conference to be held in Columbus, Ohio on July 26, 2008. It is one full day of Python fun, and it is free!
  • EuroPython – Monday 7th July – Saturday 12th July at Vilnius, Lithuania.

Tracking Trunk (3:59)


{
'changeset': 17, 
'ticket_new': 45, 
'ticket_close': 14, 
'ticket_update': 62, 
'patch': 28, 
'wiki_edit': 29
}

Branching and Merging

  • Check out brosner’s GitHub branch nfa_docs for his work on the newforms-admin documentation.

Community Catchup (8:47)

  • django-databasetemplateloader – Cool project by Janis Leidel. It loads template data from your database. All templates are editable via the admin interface. Nice for django.contrib.flatpages templates or default error templates.
  • Pro Django – Another Django book set to be released this year. This one is by Marty Alchin and we expect it to be very good advanced book on Django.

Tip of the Week (23:01)

The URLconf in Django will short-circuit when it matches a pattern. This is good because it can allow one to override URLs and map them to their own views. This is the fundamental base of how one can create their own admin interfaces.


from django.conf.urls.defaults import *

urlpatterns = patterns('',
    (r'^admin/bookstore/report/$', 'bookstore.admin_views.report'),
    (r'^admin/', include('django.contrib.admin.urls')),
)

Your view might look like this:


from mysite.books.models import Book
from django.template import RequestContext
from django.shortcuts import render_to_response
from django.contrib.admin.views.decorators import staff_member_required

def report(request):
    return render_to_response(
        "admin/books/report.html",
        {'book_list' : Book.objects.all()},
        RequestContext(request, {}),
    )
report = staff_member_required(report)

It is important to use the staff_member_required decorator to protect the view from unwanted eyes.

IRC Ad Nauseam (28:16)

Django IRC FAQ

Backwards Incompatible Changes Information

I want to be able to check if a template variable is empty, how can I do that?

We see lots of questions that relate in some form or another to being able to test for empty or None conditions within the templates. The documentation on the if tag is pretty clear, but just as a refresher here’s how it plays out:

It uses Python’s Truth Value Testing. a template variable that is:

  • None
  • False
  • zero of any numeric type, for example, 0, 0L, 0.0, 0j.
  • any empty sequence, for example, ’’, (), [].
  • any empty mapping, for example, {}.
  • instances of user-defined classes, if the class defines a __nonzero__() or __len__() method, when that method returns the integer zero or bool value False.3.1

Thank You! (33:28)

This Week in Django 22 - 2008-05-11

Posted on May 13, 2008

This Week in Django is a weekly podcast about all things Django.

This week we have discussion about a XSS vulnerability, Some cool projects and blog posts 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 (24.3 MB, 40:00, AAC)

MP3 Edition (27.5 MB, 40:00, MP3)

OGG Edition (21.7 MB, 40:00, 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

Tracking Trunk (1:26)

Community Catchup (7:56)

Tip of the Week (28:15)

How can I break apart my models.py file into individual files?

IRC Ad Nauseam (32:23)

Django IRC FAQ

Backwards Incompatible Changes Information

My login form Isn’t working the first attempt I login at. The second attempt, it works though. How is this possible?

You probably neglected to send a test cookie on the first view of whatever page your login form is at.

Thank You! (37:34)

More information on Brian Rosner: http://oebfare.com/ and http://twitter.com/brosner/.

42 Topics Interview

Posted on May 06, 2008

This past week I had the pleasure of being interviewed by Shabda Raaj at the 42 Topics Blog. It was a really enjoyable interview and he asked some very good questions (a few that stumped me). It’s not often that I get to be on the “other side of the mic,” so it was kind of a special treat for me. We did the interview through an chat client, so although it worked well at times it made it difficult to get thoughts to flow together very well. I wish Shabda great success with the blog and the 42 Topics website and I’m honored that he took the time for the interview.

This Week in Django 21 - 2008-05-04

Posted on May 06, 2008

This Week in Django is a weekly podcast about all things Django.

This week we have a couple of special guests. First, Eric Florenzano joins us for most of the show, and provides special insight into a few conversation items. Secondly we privileged to have Francis Cleary on the program to discuss a couple Tip of the Week items. We also cover all the regular stuff plus stream the program live on ustream.

Please see the Show Notes below for all the pertinent information and links

Downloads

AAC Enhanced Podcast (33.2 MB, 1:01:14, AAC)

MP3 Edition (42.1 MB, 1:01:14, MP3)

OGG Edition (31.9 MB, 1:01:14, 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

Tracking Trunk (2:50)

Branching & Merging (8:53)

Community Catchup (19:38)

  • Django l10n – Marc Garcia, who was on last week’s show provides a followup post that does a great job of pulling together the information we discussed as well as stuff we did not get time to cover.

Tip of the Week (36:16)

Francis Cleary is on the show with us this week to present his tip that he entered in the Win Cool Stuff Contest and was our grand prize winner.

Multiple view prefixes

Rather then have complex and long urls like so


urlpatterns += patterns('',
   (r'^$', 'mySite.Project.views.mainpage' ),
   (r'^custom/view/$', 'mySite.Project.views.'view_function'),
   (r'^lookup/tag/(?P<tag>\w+)/$', 'mySite.Project.views.tag_list'),
   (r'^users/$' , 'django.views.generic.list_detail.object_list', user_dict),
   (r'^recent/$','django.views.generic.list_detail.object_list', all_dict),
   (r^text/$', 'django.views.generic.date_based.object_detail', object_dict),
)

Take advantage of the first argument to the patterns() function to specify a prefix to apply to each view function. just make sure you have the += not just =.


urlpatterns += patterns('mySite.Project.views',
   (r'^$', 'mainpage'),
   (r'^custom/view/$', 'view_function'),
   (r'^lookup/tag/(?P<tag>\w+)/$', 'tag_list'),
)

urlpatterns += patterns('django.views.generic',
   (r'^users/$' , 'list_detail.object_list', user_dict),
   (r'^recent/$', 'list_detail.object_list', all_dict),
   (r'^(?P<year>\d{4})/$', 'date_based.archive_year', object_dict),
)

Advanced Generic Views

If you don’t want your urls.py filling up with dictionary or would like to do more complicated filtering or extra work to a list. Define view functions that return your generic view and di