<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-us"><title>The B-List: Latest entries in category 'Django'</title><link href="http://www.b-list.org/weblog/categories/django/" rel="alternate"></link><link href="http://www.b-list.org/feedburner/categories/django/" rel="self"></link><id>http://www.b-list.org/weblog/categories/django/</id><updated>2010-12-24T09:07:30Z</updated><author><name>James Bennett</name></author><entry><title>A stateful problem</title><link href="http://www.b-list.org/weblog/2010/dec/24/states/" rel="alternate"></link><updated>2010-12-24T09:07:30Z</updated><author><name>James Bennett</name><uri>http://www.b-list.org/</uri></author><id>tag:www.b-list.org,2010-12-24:/weblog/2010/dec/24/states/</id><summary type="html">
&lt;p&gt;So, this week we dropped &lt;a href="http://www.djangoproject.com/weblog/2010/dec/22/security/"&gt;some security updates&lt;/a&gt;, which you should definitely check out if you haven&amp;#8217;t seen them&amp;nbsp;yet.
&lt;/p&gt;
&lt;p&gt;We also released &lt;a href="http://www.djangoproject.com/weblog/2010/dec/22/13-beta-1/"&gt;the first 1.3 beta&lt;/a&gt;, which is an important milestone since it means 1.3 is now feature-frozen and will get only bugfix and polishing work until the final release. Quite a few useful things made it in between alpha and beta, and a couple just barely slipped in under the ...&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.b-list.org/weblog/2010/dec/24/states/"&gt;Read full entry and comments&lt;/a&gt;&lt;/p&gt;</summary><category term="Django"></category><category term="Misc"></category><category term="Pedantics"></category><rights>http://www.b-list.org/about/copyright/</rights></entry><entry><title>django-FUNserver</title><link href="http://www.b-list.org/weblog/2010/nov/01/django-funserver/" rel="alternate"></link><updated>2010-11-01T23:12:44Z</updated><author><name>James Bennett</name><uri>http://www.b-list.org/</uri></author><id>tag:www.b-list.org,2010-11-01:/weblog/2010/nov/01/django-funserver/</id><summary type="html">
&lt;p&gt;Step 1: &lt;code&gt;pip install django-funserver&lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;Step 2: Add &amp;#8220;funserver&amp;#8221; to your &lt;code&gt;INSTALLED_APPS&lt;/code&gt;.
&lt;/p&gt;
&lt;p&gt;Step 3: Run &lt;code&gt;manage.py funserver&lt;/code&gt;.
&lt;/p&gt;
&lt;p&gt;For best results, don&amp;#8217;t do this on a real&amp;nbsp;server.
&lt;/p&gt;
&lt;p&gt;Code is &lt;a href="http://bitbucket.org/ubernostrum/django-funserver/src"&gt;here&lt;/a&gt;, for those&amp;nbsp;interested.
&lt;/p&gt;


&lt;p&gt;&lt;a href="http://www.b-list.org/weblog/2010/nov/01/django-funserver/"&gt;Read full entry and comments&lt;/a&gt;&lt;/p&gt;</summary><category term="Django"></category><category term="Misc"></category><category term="Python"></category><rights>http://www.b-list.org/about/copyright/</rights></entry><entry><title>django-registration</title><link href="http://www.b-list.org/weblog/2009/oct/14/registration/" rel="alternate"></link><updated>2009-10-14T02:26:23Z</updated><author><name>James Bennett</name><uri>http://www.b-list.org/</uri></author><id>tag:www.b-list.org,2009-10-14:/weblog/2009/oct/14/registration/</id><summary type="html">
&lt;p&gt;So, life has been eventful lately. There was DjangoCon, which was awesome even though I came away deeply unhappy with how my talk turned out; due to a lot of hectic things going on, it fell far below the standard I usually like to enforce for myself. I&amp;#8217;ve got a couple things cooking for PyCon, though, which will hopefully make up for it. Things are starting to ramp up for the Django 1.2 ...&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.b-list.org/weblog/2009/oct/14/registration/"&gt;Read full entry and comments&lt;/a&gt;&lt;/p&gt;</summary><category term="Django"></category><category term="Meta"></category><rights>http://www.b-list.org/about/copyright/</rights></entry><entry><title>Let's talk about WSGI</title><link href="http://www.b-list.org/weblog/2009/aug/10/wsgi/" rel="alternate"></link><updated>2009-08-10T05:31:44Z</updated><author><name>James Bennett</name><uri>http://www.b-list.org/</uri></author><id>tag:www.b-list.org,2009-08-10:/weblog/2009/aug/10/wsgi/</id><summary type="html">
&lt;p&gt;Recently Armin Ronacher (whose &lt;a href="http://lucumr.pocoo.org/"&gt;blog&lt;/a&gt; you should be reading if you do anything at all involving Python and the web) has published a couple of &lt;a href="http://lucumr.pocoo.org/2009/7/30/nih-in-the-wsgi-world"&gt;good&lt;/a&gt; &lt;a href="http://lucumr.pocoo.org/2009/8/5/pro-cons-about-werkzeug-webob-and-django"&gt;articles&lt;/a&gt; poking at the current state of &lt;acronym title="Web Server Gateway Interface"&gt;&lt;span class="caps"&gt;WSGI&lt;/span&gt;&lt;/acronym&gt;, the &lt;a href="http://www.python.org/dev/peps/pep-0333/"&gt;standard interface for Python web applications&lt;/a&gt;. Some of his comments dovetail nicely into concerns I&amp;#8217;ve been trying to put into words for a while now, so I&amp;#8217;m glad he&amp;#8217;s posting on the subject and providing some&amp;nbsp;context ...&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.b-list.org/weblog/2009/aug/10/wsgi/"&gt;Read full entry and comments&lt;/a&gt;&lt;/p&gt;</summary><category term="Django"></category><category term="Frameworks"></category><category term="Python"></category><rights>http://www.b-list.org/about/copyright/</rights></entry><entry><title>On "magic", once again</title><link href="http://www.b-list.org/weblog/2009/jul/23/magic/" rel="alternate"></link><updated>2009-07-23T08:31:13Z</updated><author><name>James Bennett</name><uri>http://www.b-list.org/</uri></author><id>tag:www.b-list.org,2009-07-23:/weblog/2009/jul/23/magic/</id><summary type="html">
&lt;p&gt;So it seems Giles Bowkett &lt;a href="http://gilesbowkett.blogspot.com/2009/07/do-you-believe-in-magic.html"&gt;is upset&lt;/a&gt; about use of the word &amp;#8220;magic&amp;#8221;. I&amp;#8217;m happy to agree with the general consensus from various fora that &lt;a href="http://christopherroach.com/blog/i-hate-magic-why-django-rocks/"&gt;the specific article he&amp;#8217;s complaining about&lt;/a&gt; is, well, pretty much content-free. I could read that post over and over and still have no idea what actual things the author liked about Django or didn&amp;#8217;t like about Rails. But I&amp;#8217;ve pretty much learned to ignore content-free hype ...&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.b-list.org/weblog/2009/jul/23/magic/"&gt;Read full entry and comments&lt;/a&gt;&lt;/p&gt;</summary><category term="Django"></category><category term="Programming"></category><rights>http://www.b-list.org/about/copyright/</rights></entry><entry><title>An update on the book</title><link href="http://www.b-list.org/weblog/2009/jul/07/code/" rel="alternate"></link><updated>2009-07-07T07:31:06Z</updated><author><name>James Bennett</name><uri>http://www.b-list.org/</uri></author><id>tag:www.b-list.org,2009-07-07:/weblog/2009/jul/07/code/</id><summary type="html">
&lt;p&gt;So, the repository for &lt;a href="http://www.amazon.com/dp/1430219386/"&gt;the second edition of Practical Django Projects&lt;/a&gt; is not yet done, but due to the general clamor I&amp;#8217;m opening up public access; you can browse it, or check out a copy of the code, from &lt;a href="http://bitbucket.org/ubernostrum/practical-django-projects/"&gt;its page on Bitbucket&lt;/a&gt;. You&amp;#8217;ll probably want to have a look over the &lt;span class="caps"&gt;README&lt;/span&gt; file displayed on that page, since it provides helpful information on how the repository&amp;nbsp;works.
&lt;/p&gt;
&lt;p&gt;Right now the first three ...&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.b-list.org/weblog/2009/jul/07/code/"&gt;Read full entry and comments&lt;/a&gt;&lt;/p&gt;</summary><category term="Django"></category><category term="Meta"></category><rights>http://www.b-list.org/about/copyright/</rights></entry><entry><title>A fun little bug</title><link href="http://www.b-list.org/weblog/2009/jun/26/fun-little-bug/" rel="alternate"></link><updated>2009-06-26T02:04:45Z</updated><author><name>James Bennett</name><uri>http://www.b-list.org/</uri></author><id>tag:www.b-list.org,2009-06-26:/weblog/2009/jun/26/fun-little-bug/</id><summary type="html">
&lt;p&gt;About two months ago, I quietly wrote and released &lt;a href="http://pypi.python.org/pypi/django-flashpolicies/"&gt;a little Django application which generates cross-domain policy files for Flash&lt;/a&gt; (if you&amp;#8217;ve never encountered this aspect of Flash, &lt;a href="http://code.google.com/p/doctype/wiki/ArticleFlashSecurityCrossDomain"&gt;here&amp;#8217;s an introductory article on how it works&lt;/a&gt;). I&amp;#8217;ve done a bit of hacking on it in my spare time, and I&amp;#8217;m pretty happy with it as an example of a simple, tightly-focused application; sometime soon I hope to write a bit more ...&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.b-list.org/weblog/2009/jun/26/fun-little-bug/"&gt;Read full entry and comments&lt;/a&gt;&lt;/p&gt;</summary><category term="Django"></category><category term="Misc"></category><category term="Python"></category><rights>http://www.b-list.org/about/copyright/</rights></entry><entry><title>Second edition</title><link href="http://www.b-list.org/weblog/2009/jun/23/second-edition/" rel="alternate"></link><updated>2009-06-23T15:10:09Z</updated><author><name>James Bennett</name><uri>http://www.b-list.org/</uri></author><id>tag:www.b-list.org,2009-06-23:/weblog/2009/jun/23/second-edition/</id><summary type="html">
&lt;p&gt;So just after lunch today a box arrived, containing copies of &lt;a href="http://www.amazon.com/dp/1430219386/"&gt;the second edition of Practical Django Projects&lt;/a&gt;, which went through final editing about a month ago (Apress tends to be pretty quick at getting the book printed and shipping). Since I assume that means other people will be getting copies of the book soon, I&amp;#8217;d like to cover a couple important bits of&amp;nbsp;information.
&lt;/p&gt;
&lt;p&gt;First of all, the second edition (as the cover ...&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.b-list.org/weblog/2009/jun/23/second-edition/"&gt;Read full entry and comments&lt;/a&gt;&lt;/p&gt;</summary><category term="Django"></category><category term="Meta"></category><rights>http://www.b-list.org/about/copyright/</rights></entry><entry><title>PyCon ORM panel liveblog</title><link href="http://www.b-list.org/weblog/2009/mar/28/pycon-orm-panel/" rel="alternate"></link><updated>2009-03-28T13:06:13Z</updated><author><name>James Bennett</name><uri>http://www.b-list.org/</uri></author><id>tag:www.b-list.org,2009-03-28:/weblog/2009/mar/28/pycon-orm-panel/</id><summary type="html">
&lt;p&gt;I&amp;#8217;m sitting about five rows back in the ballroom at the Hyatt, waiting for the &lt;acronym title="Object-Relational Mapper"&gt;&lt;span class="caps"&gt;ORM&lt;/span&gt;&lt;/acronym&gt; panel to&amp;nbsp;begin.
&lt;/p&gt;
&lt;p&gt;Panel&amp;#8217;s starting. Moderator Alex Gaynor introduces himself and&amp;nbsp;panelists:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
     Guido van Rossum (App&amp;nbsp;Engine)
 &lt;/li&gt;
&lt;li&gt;
     Jacob Kaplan-Moss&amp;nbsp;(Django)
 &lt;/li&gt;
&lt;li&gt;
     Massimo diPierro&amp;nbsp;(web2py)
 &lt;/li&gt;
&lt;li&gt;
     Ian Bicking&amp;nbsp;(SQLObject)
 &lt;/li&gt;
&lt;li&gt;
     Mike Bayer&amp;nbsp;(SQLALchemy)
 &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;First question: brief history of your&amp;nbsp;&lt;span class="caps"&gt;ORM&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;SQLALchemy: wanted to do a &lt;span class="caps"&gt;CMS&lt;/span&gt;, but never ended up writing it. Had idea for a modular library to talk to ...&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.b-list.org/weblog/2009/mar/28/pycon-orm-panel/"&gt;Read full entry and comments&lt;/a&gt;&lt;/p&gt;</summary><category term="Django"></category><category term="Frameworks"></category><category term="Python"></category><rights>http://www.b-list.org/about/copyright/</rights></entry><entry><title>Django 2.0</title><link href="http://www.b-list.org/weblog/2009/jan/18/django-20/" rel="alternate"></link><updated>2009-01-18T17:37:54Z</updated><author><name>James Bennett</name><uri>http://www.b-list.org/</uri></author><id>tag:www.b-list.org,2009-01-18:/weblog/2009/jan/18/django-20/</id><summary type="html">
&lt;p&gt;So apparently some folks doing business as &amp;#8220;Vyper Logix Corp&amp;#8221; are peddling a thing they call &amp;#8220;Django 2.0&amp;#8221;. I&amp;#8217;m not going to link it here since they don&amp;#8217;t deserve the Google bump, but if you&amp;#8217;re interested you can &lt;a href="http://twitter.com/jezdez/status/1128224563"&gt;follow the link in Jannis&amp;#8217; tweet where he mentioned it&lt;/a&gt;. In fact, with any luck my Google juice will pop this article up above&amp;nbsp;them.
&lt;/p&gt;
&lt;p&gt;&lt;span class="dquo"&gt;&amp;#8220;&lt;/span&gt;Django 2.0&amp;#8221; is, apparently, built on the ...&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.b-list.org/weblog/2009/jan/18/django-20/"&gt;Read full entry and comments&lt;/a&gt;&lt;/p&gt;</summary><category term="Django"></category><category term="Misc"></category><rights>http://www.b-list.org/about/copyright/</rights></entry><entry><title>Second editions galore</title><link href="http://www.b-list.org/weblog/2009/jan/09/practical-django/" rel="alternate"></link><updated>2009-01-09T08:10:01Z</updated><author><name>James Bennett</name><uri>http://www.b-list.org/</uri></author><id>tag:www.b-list.org,2009-01-09:/weblog/2009/jan/09/practical-django/</id><summary type="html">
&lt;p&gt;Adrian &lt;a href="http://www.holovaty.com/blog/archive/2009/01/09/0133"&gt;announced today&lt;/a&gt; that he&amp;#8217;s working on revising &lt;cite&gt;The Definitive Guide to Django&lt;/cite&gt; to produce a second edition that covers Django 1.0, which is awesome news for anyone who&amp;#8217;s used the book as a guide to learning&amp;nbsp;Django.
&lt;/p&gt;
&lt;p&gt;In the same vein, I&amp;#8217;d like to announce something that&amp;#8217;s been unofficially mentioned a couple times but never fully clarified: I&amp;#8217;m busy working on &lt;a href="http://www.amazon.com/dp/1430219386/"&gt;the second edition of Practical Django Projects ...&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.b-list.org/weblog/2009/jan/09/practical-django/"&gt;Read full entry and comments&lt;/a&gt;&lt;/p&gt;</summary><category term="Django"></category><category term="Meta"></category><rights>http://www.b-list.org/about/copyright/</rights></entry><entry><title>Users and the admin</title><link href="http://www.b-list.org/weblog/2008/dec/24/admin/" rel="alternate"></link><updated>2008-12-24T00:22:48Z</updated><author><name>James Bennett</name><uri>http://www.b-list.org/</uri></author><id>tag:www.b-list.org,2008-12-24:/weblog/2008/dec/24/admin/</id><summary type="html">
&lt;p&gt;So, for as long as I can remember the single most-frequently-asked question about the Django admin has been some variation of &amp;#8220;how do I set a foreign key to &lt;code&gt;User&lt;/code&gt; to automatically be filled in with &lt;code&gt;request.user&lt;/code&gt;?&amp;#8221; And for a while the answer was that you couldn&amp;#8217;t do that, really; it was and still is easy to do with a custom form in your own view, but up until a few months back ...&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.b-list.org/weblog/2008/dec/24/admin/"&gt;Read full entry and comments&lt;/a&gt;&lt;/p&gt;</summary><category term="Django"></category><rights>http://www.b-list.org/about/copyright/</rights></entry><entry><title>Generic inlines and Django history</title><link href="http://www.b-list.org/weblog/2008/dec/04/generic-inlines/" rel="alternate"></link><updated>2008-12-04T02:14:26Z</updated><author><name>James Bennett</name><uri>http://www.b-list.org/</uri></author><id>tag:www.b-list.org,2008-12-04:/weblog/2008/dec/04/generic-inlines/</id><summary type="html">
&lt;p&gt;The other day at work I stumbled across my first opportunity to use a relatively-new feature in the Django admin, one which turned what had looked like it would be a fairly nasty task into, basically, a five-minute job (plus staging, testing and deployment, of course, but that happens no matter how long it takes to develop the code). I&amp;#8217;ll get to the specifics in a minute, but first I want to give a ...&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.b-list.org/weblog/2008/dec/04/generic-inlines/"&gt;Read full entry and comments&lt;/a&gt;&lt;/p&gt;</summary><category term="Django"></category><category term="Misc"></category><rights>http://www.b-list.org/about/copyright/</rights></entry><entry><title>Another take on content negotiation</title><link href="http://www.b-list.org/weblog/2008/nov/29/multiresponse/" rel="alternate"></link><updated>2008-11-29T20:24:39Z</updated><author><name>James Bennett</name><uri>http://www.b-list.org/</uri></author><id>tag:www.b-list.org,2008-11-29:/weblog/2008/nov/29/multiresponse/</id><summary type="html">
&lt;p&gt;Today my co-worker Daniel posted &lt;a href="http://toastdriven.com/fresh/multiresponse/"&gt;a class which performs content negotiation for Django views&lt;/a&gt;, allowing you to write a single view which returns any of several types of responses (e.g., &lt;acronym title="HyperText Markup Language"&gt;&lt;span class="caps"&gt;HTML&lt;/span&gt;&lt;/acronym&gt;, &lt;acronym title="JavaScript Object Notation"&gt;&lt;span class="caps"&gt;JSON&lt;/span&gt;&lt;/acronym&gt;, &lt;acronym title="eXtensible Markup Language"&gt;&lt;span class="caps"&gt;XML&lt;/span&gt;&lt;/acronym&gt;) according to the incoming &lt;acronym title="HyperText Transfer Protocol"&gt;&lt;span class="caps"&gt;HTTP&lt;/span&gt;&lt;/acronym&gt; &lt;code&gt;Accept&lt;/code&gt; header. While it&amp;#8217;s certainly cool, he notes a couple of issues with it (including the redundancy it introduces in &lt;acronym title="Uniform Resource Locator"&gt;&lt;span class="caps"&gt;URL&lt;/span&gt;&lt;/acronym&gt;&amp;nbsp;configuration).
&lt;/p&gt;
&lt;p&gt;So let&amp;#8217;s see if we can&amp;#8217;t come up with a way ...&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.b-list.org/weblog/2008/nov/29/multiresponse/"&gt;Read full entry and comments&lt;/a&gt;&lt;/p&gt;</summary><category term="Django"></category><category term="Python"></category><rights>http://www.b-list.org/about/copyright/</rights></entry><entry><title>Writing custom management commands</title><link href="http://www.b-list.org/weblog/2008/nov/14/management-commands/" rel="alternate"></link><updated>2008-11-14T19:35:12Z</updated><author><name>James Bennett</name><uri>http://www.b-list.org/</uri></author><id>tag:www.b-list.org,2008-11-14:/weblog/2008/nov/14/management-commands/</id><summary type="html">
&lt;p&gt;The other night in the &lt;code&gt;#django-dev&lt;/code&gt; &lt;acronym title="Internet Relay Chat"&gt;&lt;span class="caps"&gt;IRC&lt;/span&gt;&lt;/acronym&gt; channel, &lt;a href="http://cecinestpasun.com/"&gt;Russ&lt;/a&gt;, &lt;a href="http://ericholscher.com/"&gt;Eric&lt;/a&gt; and I were talking about &lt;a href="http://docs.djangoproject.com/en/dev/howto/custom-management-commands/#howto-custom-management-commands"&gt;custom management commands&lt;/a&gt; for certain types of common but tedious tasks; Eric was discussing the possibility of a command for automatically generating a &lt;code&gt;tests&lt;/code&gt; module in a Django application, since he&amp;#8217;s our resident unit-testing freak, and I started toying with the idea of one to generate basic &lt;a href="http://docs.djangoproject.com/en/dev/ref/contrib/admin/"&gt;admin declarations&lt;/a&gt; for the models in an&amp;nbsp;application.
&lt;/p&gt;
&lt;p&gt;So I sat down ...&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.b-list.org/weblog/2008/nov/14/management-commands/"&gt;Read full entry and comments&lt;/a&gt;&lt;/p&gt;</summary><category term="Django"></category><category term="Programming"></category><category term="Python"></category><rights>http://www.b-list.org/about/copyright/</rights></entry></feed>