Slide 1

Slide 1 text

Django Development Milestones Django 1.0 onwards

Slide 2

Slide 2 text

What's new in Django 1.0? September 2008 18 months 3080 commits, 1505 files changed, 285516 insertions(+), 99315 deletions(-) Malcolm, Adrian, Russell, Jacob

Slide 3

Slide 3 text

EVERYTHING What's new in Django 1.0? September 2008

Slide 4

Slide 4 text

Unicode by default Template auto escaping Newforms by default Total admin rewrite Queryset refactor Storage backends GIS What's new in Django 1.0? Django wouldn't be the same without…

Slide 5

Slide 5 text

Total contrib.comments rewrite Jython support What's new in Django 1.0? Maybe we shouldn't have been so excited about…

Slide 6

Slide 6 text

Paginator MultipleObjectsReturned What's new in Django 1.0? It's the little things in life… DecimalField Dict access to response headers

Slide 7

Slide 7 text

What's new in Django 1.1? July 2009 10 months 1291 commits, 942 files changed, 95220 insertions(+), 35647 deletions(-) Malcolm, Russell, Jacob, Karen

Slide 8

Slide 8 text

Aggregates F() Transactions in tests Admin actions What's new in Django 1.1? Django wouldn't be the same without… Unmanaged models

Slide 9

Slide 9 text

URL Namespaces What's new in Django 1.1? Maybe we shouldn't have been so excited about…

Slide 10

Slide 10 text

What's new in Django 1.1? It's the little things in life… {% empty %}

Slide 11

Slide 11 text

What's new in Django 1.2? May 2010 10 months 1165 commits, 1322 files changed, 154617 insertions(+), 41590 deletions(-) Russell, Jannis, Luke, Karen

Slide 12

Slide 12 text

ME! What's new in Django 1.2? May 2010

Slide 13

Slide 13 text

Multiple databases CSRF rewrite contrib.messages Email backends What's new in Django 1.2? Django wouldn't be the same without…

Slide 14

Slide 14 text

"As a side effect, it is now much easier to support non- Django template languages." "A foundation for specifying permissions at the per-object level has been added." What's new in Django 1.2? Maybe we shouldn't have been so excited about…

Slide 15

Slide 15 text

Cached template loader {% if foo < bar %} What's new in Django 1.2? It's the little things in life… --failfast

Slide 16

Slide 16 text

What's new in Django 1.3? March 2011 10 months 1590 commits, 3523 files changed, 429793 insertions(+), 296206 deletions(-) Russell, Jannis, Alex, Luke

Slide 17

Slide 17 text

Class-based views settings.LOGGING contrib.staticfiles What's new in Django 1.3? Django wouldn't be the same without…

Slide 18

Slide 18 text

ValidationError: ManagementForm data is missing or has been tampered with What's new in Django 1.3? Maybe we shouldn't have been so excited about…

Slide 19

Slide 19 text

What's new in Django 1.3? It's the little things in life… {% include … with … only %} render() RequestFactory() Calling functions consistently in templates

Slide 20

Slide 20 text

What's new in Django 1.4? March 2012 12 months 1689 commits, 4067 files changed, 313692 insertions(+), 142840 deletions(-) Jannis, Aymeric, Ramiro, Luke

Slide 21

Slide 21 text

Timezone support What's new in Django 1.4? Django wouldn't be the same without… Timezone support Timezone support Timezone support Timezone support Timezone support

Slide 22

Slide 22 text

bulk_create() PBKDF2 Project layout Selenium What's new in Django 1.4? Django wouldn't be the same without… prefetch_related() Sensitive post parameters wsgi.py

Slide 23

Slide 23 text

New form wizard What's new in Django 1.4? Maybe we shouldn't have been so excited about…

Slide 24

Slide 24 text

Plaintext 500 for ajax assertHTMLEqual() What's new in Django 1.4? It's the little things in life… {% elif %} DISTINCT ON reverse_lazy Grouped manage.py help

Slide 25

Slide 25 text

What's new in Django 1.5? February 2013 11 months 1853 commits, 3823 files changed, 164853 insertions(+), 153265 deletions(-) Claude, Aymeric, Tim, Anssi

Slide 26

Slide 26 text

Pluggable User models update_fields Python 3 What's new in Django 1.5? Django wouldn't be the same without… Streaming HTTP Responses

Slide 27

Slide 27 text

… I've run out of hindsight What's new in Django 1.5? Maybe we shouldn't have been so excited about…

Slide 28

Slide 28 text

What's new in Django 1.5? It's the little things in life… {% if True %} request.body django.utils.text.slugify cleaned_data on invalid forms LOGIN_URL accepts url names index_together

Slide 29

Slide 29 text

What's new in Django 1.6? November 2013 9 months 2259 commits, 5497 files changed, 227580 insertions(+), 402846 deletions(-) Aymeric, Tim, Claude, Anssi

Slide 30

Slide 30 text

For Malcolm What's new in Django 1.6? November 2013

Slide 31

Slide 31 text

Persistent database connections ./manage.py check Transaction management What's new in Django 1.6? Django wouldn't be the same without… Faster model saving Test discovery JSON session serializer

Slide 32

Slide 32 text

What's new in Django 1.6? It's the little things in life… qs.first() Deployment checklist HTML5 inputs Admin preserves filters

Slide 33

Slide 33 text

What's new in Django 1.7? September 2014 10 months 3146 commits, 4590 files changed, 221832 insertions(+), 124929 deletions(-) Tim, Andrew, Aymeric, Claude

Slide 34

Slide 34 text

Prefetch objects Queryset.as_manager() Migrations What's new in Django 1.7? Django wouldn't be the same without… Improved form errors App loading refactor Custom lookups

Slide 35

Slide 35 text

What's new in Django 1.7? It's the little things in life… @admin.site.register HttpRequest.scheme Form clean doesn't have to return data Customisable empty_label HTTPS test client

Slide 36

Slide 36 text

What's new in Django 1.8? April 2015 7 months 2726 commits, 4864 files changed, 131781 insertions(+), 197462 deletions(-) Tim, Claude, Aymeric, Andrew

Slide 37

Slide 37 text

Django-secure setUpTestData Template Engines What's new in Django 1.8? Django wouldn't be the same without… Contrib.postgres Model._meta UUID and Timedelta Expressions

Slide 38

Slide 38 text

What's new in Django 1.8? It's the little things in life… refresh_from_db --keepdb --reverse --debug-sql More care with model types in ORM MySQL microseconds Cleaner GIS Fixed default max_length

Slide 39

Slide 39 text

What's new in Django 1.9? Scheduled December 2015 8 months 1209 commits, 1319 files changed, 54483 insertions(+), 41497 deletions(-) Tim, Claude, Aymeric, Markus

Slide 40

Slide 40 text

??? Transaction commit signals What's new in Django 1.9? Django wouldn't be the same without… More contrib.postgres Permission mixins Password validation URLs rewrite? ??? Composite fields? ??? ???

Slide 41

Slide 41 text

What's new in Django 1.9? It's the little things in life… client.force_login() Test extensions? Test client json Chainable date lookups ??? ??? ??? ???

Slide 42

Slide 42 text

Marc Tamlyn @mjtamlyn photocrowd.com