django - the first five years
TRANSCRIPT
![Page 1: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/1.jpg)
The first five years
Jacob Kaplan-Moss
Google, December 16, 2008http://jacobian.org/speaking/2008/first-five-years/
![Page 2: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/2.jpg)
“”
Good software takes ten years. Get used to it.
— Joel Spolskyhttp://www.joelonsoftware.com/articles/fog0000000017.html
![Page 3: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/3.jpg)
Halfway there!
http://flickr.com/photos/usonian/257403571/
![Page 4: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/4.jpg)
Kansas
![Page 5: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/5.jpg)
![Page 6: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/6.jpg)
![Page 7: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/7.jpg)
Merry Slickmas
The Dog and Pony Show
Hark! The Local Musicians Sing!: New Christmas albums from Sam
Billen and Josh Atkinson
Sam Billen’s “Merry Christmas” and Josh Atkinson’s “Songs for Christmas” rank right up
there with recent yuletide blessings from Sufjan Stevens and Low. Both albums strip away
Best bets Upcoming
Today's events Search events
"A Benefit for Charley's Finger" with The
Dactyls / Naomi What?
Charlie Downey is a baller. He's so badass that he
broke his finger in two places when one of his
shots got stuffed
Today at 10:00pm
The Jackpot Music Hall, $5
Staph blogs
O Caption! My Caption!
Loafers of Mass Destruction
13 comments
Scene Stealers
'Synecdoche, New York' tackles life’s
complexity with complexity
Events Latest Music Movies Food Nightlife
![Page 8: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/8.jpg)
![Page 9: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/9.jpg)
![Page 10: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/10.jpg)
“”
In the beginning there was Zope. Zope was a web application framework ... but
it had some discontents who dared to call it "monolithic" and "unpythonic".
And behold, then there came Webware, and it was Modular.... But others
rebelled ... and a Ton of frameworks appeared: Quixote ... SkunkWEB ...
CherryPy ... and some thirteen others.
— Mike Orrhttp://linuxgazette.net/113/orr.html
![Page 11: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/11.jpg)
![Page 12: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/12.jpg)
![Page 13: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/13.jpg)
2003
![Page 14: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/14.jpg)
2008
![Page 15: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/15.jpg)
r36 cms/apps/polls/
r84 cms/core/validators.py
r159 cms/core/paginator.py
r327 cms/apps/auth/
r390 cms/core/urlresolvers.py
r630 cms/core/sites.py
![Page 16: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/16.jpg)
![Page 17: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/17.jpg)
![Page 18: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/18.jpg)
February 2004circa r1000
![Page 19: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/19.jpg)
![Page 20: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/20.jpg)
cms/apps/polls/poll.py
![Page 21: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/21.jpg)
>>>fromcms.apps.polls.pollsimportPoll>>>p=Poll(4,"hi",date(2004,1,1),...)>>>p.save()
![Page 22: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/22.jpg)
cms/apps/polls/polls.py
![Page 23: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/23.jpg)
cms/apps/polls/polls.py
![Page 24: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/24.jpg)
cms/apps/polls/dblayout.sql
![Page 25: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/25.jpg)
httpd.conf
![Page 26: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/26.jpg)
cms/conf/mrmustard/polls.py
![Page 27: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/27.jpg)
cms/views/polls/polls.py
![Page 28: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/28.jpg)
Data class Admin view
Data-access function(s) Admin template
Admin URLs
![Page 29: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/29.jpg)
![Page 30: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/30.jpg)
cms/datadescriptions/polls.py
![Page 31: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/31.jpg)
./generate_code.pypolls
![Page 32: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/32.jpg)
apps/polls.py
sql/polls.sql
views/admin/
polls.py
templates/admin/
polls/change_list.htmladd_form.htmlchange_form.html
![Page 33: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/33.jpg)
cms/utilities/codegeneration/generation.py
![Page 34: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/34.jpg)
cms/datadescriptions/polls.py
![Page 35: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/35.jpg)
DONOTEDITTHISFILEMANUALLY.ITWASGENERATEDBYAPROGRAM.RE‐RUNTHECODEGENERATORINSTEAD.
![Page 36: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/36.jpg)
Seven months later...October 2004
![Page 37: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/37.jpg)
![Page 38: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/38.jpg)
cms/models/polls.py
![Page 39: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/39.jpg)
![Page 40: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/40.jpg)
PyCon 2005
![Page 41: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/41.jpg)
Rails
![Page 42: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/42.jpg)
![Page 43: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/43.jpg)
![Page 44: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/44.jpg)
![Page 45: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/45.jpg)
![Page 46: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/46.jpg)
![Page 47: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/47.jpg)
![Page 48: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/48.jpg)
![Page 49: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/49.jpg)
![Page 50: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/50.jpg)
![Page 51: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/51.jpg)
![Page 52: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/52.jpg)
![Page 53: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/53.jpg)
classPoll(meta.Model):fields=(meta.SlugField('slug','slug',unique_for_month='pub_date'),meta.CharField('question','question',maxlength=255),meta.DateTimeField('pub_date','datepublished'),meta.DateTimeField('expire_date','expirationdate'),meta.ManyToManyField(core.Site),meta.PositiveSmallIntegerField('choice_votes','choicevotes'),)
db_table=pollsordering=('‐pub_date',)get_latest_by='pub_date'
![Page 54: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/54.jpg)
classPoll(meta.Model):slug=meta.SlugField(unique_for_month='pub_date')question=meta.CharField(maxlength=255)pub_date=meta.DateTimeField('datepublished')expire_date=meta.DateTimeField('expirationdate')sites=meta.ManyToManyField(core.Site)choice_votes=meta.PositiveSmallIntegerField(default=1)
classMETA:db_table='polls'ordering=('‐pub_date',)
![Page 55: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/55.jpg)
“”— Adrian, August 2005
http://www.djangoproject.com/weblog/2005/aug/25/modelsyntax/
I can't think of any other backwards-incompatible
changes that we're planning before 1.0 (knock on wood). If this isn't the last one, though, it's at least the last major one.
![Page 56: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/56.jpg)
![Page 57: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/57.jpg)
![Page 58: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/58.jpg)
![Page 59: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/59.jpg)
![Page 60: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/60.jpg)
![Page 61: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/61.jpg)
![Page 62: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/62.jpg)
Before:fromdjango.models.pollsimportPoll
After:frommyapp.modelsimportPoll
![Page 63: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/63.jpg)
Before:...magic!...
After:importdatetime
![Page 64: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/64.jpg)
Before:classPoll(meta.Model):classMETA:admin=meta.Admin(list_display=('title'),)
After:classPoll(meta.Model):classAdminlist_display=('title')
![Page 65: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/65.jpg)
Before:fromdjango.models.pollsimportpollspolls.get_list(slug__exact='slug')
After:frompolls.modelsimportPollPoll.objects.filter(slug='slug')
![Page 66: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/66.jpg)
![Page 67: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/67.jpg)
339fileschanged,22290insertions(+),15656deletions(‐)
![Page 68: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/68.jpg)
“”
After this merge, Django 1.0 can’t be far off.
— Bill de hÓrahttp://www.dehora.net/journal/2006/04/django_magic_merging.html
![Page 69: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/69.jpg)
![Page 70: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/70.jpg)
“0.95”
![Page 71: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/71.jpg)
![Page 72: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/72.jpg)
django.newforms
django.test
![Page 73: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/73.jpg)
![Page 74: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/74.jpg)
![Page 75: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/75.jpg)
18 months
![Page 76: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/76.jpg)
3,094 commits+ branches
![Page 77: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/77.jpg)
1,370 from the community
![Page 78: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/78.jpg)
230 new AUTHORS
![Page 79: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/79.jpg)
2,120 bugs fixed
![Page 80: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/80.jpg)
1,394fileschanged,28,3237insertions(+),97,036deletions(‐)
![Page 81: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/81.jpg)
40,000 lines of new documentation
![Page 82: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/82.jpg)
4 new full committers
![Page 83: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/83.jpg)
Unicode
![Page 84: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/84.jpg)
QSRF
![Page 85: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/85.jpg)
NFA
![Page 86: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/86.jpg)
GeoDjango
![Page 87: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/87.jpg)
ModelForms
![Page 88: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/88.jpg)
Autoescaping
![Page 89: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/89.jpg)
Django on Jython(Thanks, Google!)
![Page 90: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/90.jpg)
... and much more ...http://docs.djangoproject.com/en/dev/releases/1.0/
![Page 91: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/91.jpg)
API stability & forwards-compatability
http://docs.djangoproject.com/en/dev/misc/api-stability/
![Page 92: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/92.jpg)
Formal release processhttp://docs.djangoproject.com/en/dev/internals/release-process/
![Page 93: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/93.jpg)
What’s next?
![Page 94: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/94.jpg)
Django 1.1March 16, 2009
![Page 95: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/95.jpg)
Django 1.1 Roadmaphttp://code.djangoproject.com/wiki/Version1.1Roadmap
![Page 96: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/96.jpg)
ORM aggregationhttp://github.com/freakboy3742/django/tree/aggregation
![Page 97: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/97.jpg)
>>>Book.objects.aggregate(...Avg('price'),...highest_price=Max('price'))
{'price_avg':45.0,'highest_price':82.80}
![Page 98: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/98.jpg)
>>>Author.objects.aggregate(Sum('book__price'))
{'book_price_sum':442}
![Page 99: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/99.jpg)
>>>books=Book.objects.annotate(Max('authors__age'))
>>>books[0].nameu'PythonWebDevelopmentWithDjango'
>>>books[0].authors.all()[<Author:JeffreyForcier>,<Author:PaulBissex>,<Author:WesleyJ.Chun>]
>>>books[0].authors__age__max37.0
![Page 100: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/100.jpg)
Publisher.objects.annotate(num_books=Count('book__id'))\.filter(num_books__gt=1)\.order_by('num_books')
![Page 101: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/101.jpg)
Improved QuerySet.update()
![Page 102: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/102.jpg)
>>>Person.objects.update(age=F('age')+1)
![Page 103: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/103.jpg)
Model Validationhttp://code.djangoproject.com/ticket/6845
![Page 104: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/104.jpg)
>>>p=Person.objects.get(...)>>>p.age=‐7>>>p.save(validate=True)Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>ValidationError:enteranumbergreaterthan0.
![Page 105: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/105.jpg)
Bulk admin actionshttp://code.google.com/p/django-batchadmin/
![Page 106: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/106.jpg)
![Page 107: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/107.jpg)
Class-based generic views
![Page 108: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/108.jpg)
fromdjango.views.genericimportDetailView
classPersonView(DetailView):queryset=Person.objects.all()defget_template(self,request):returnTemplate(...)
![Page 109: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/109.jpg)
http://code.djangoproject.com/wiki/Version1.1Roadmap
... and more ...
![Page 110: Django - the first five years](https://reader034.vdocuments.net/reader034/viewer/2022052410/554a3649b4c905293a8b45a6/html5/thumbnails/110.jpg)
Please help!http://code.djangoproject.com/wiki/Version1.1Roadmap#how-you-can-help