Notable changes in Django's SVN trunk since 0.96
After someone asked about it in #django, I had a quick trawl through the Django Trac's Timeline to see what's happened in trunk since 0.96.
I've been tracking it for a number of weeks now while developing new applications, as it's reached the point where there are just too many useful new features not to, especially if you've been waiting for DecimalField or you need to work with non-ASCII data.
Taken along with the Backwards Incompatible Changes wiki page, this should give you a good idea of what's new in Django's SVN trunk.
Disclaimer: the author takes no responsibility for ensuring he's actually linked to the correct changesets :-p
Updated on 4th September, 2007
| Changeset | Description |
|---|---|
| 4830 | Added {% with %} tag, for caching the result of method which will be used more than once. |
| 4857 | Added django.contrib.webdesign. |
| 4901 | Added the ability to name URL patterns. Helps with disambiguity reverse matches. |
| 5011 | Added django.contrib.databrowse. |
| 5072 | Made values for login, logout and post-login redirect URLs configurable. |
| 5141 | Added EmailMessage and SMTPConnection classes. |
| 5144 | Added support for TLS connections to email handling. This means servers like Google's SMTP server can now be used for admin emails. |
| 5146 | Added BCC support to the EmailMessage class. |
| 5156 | Added assertFormError, assertTemplateUsed and assertTemplateNotUsed for use during unit testing. |
| 5209 | Allow callables as initial data in newforms. |
| 5289 | Added pop() method to QueryDict. |
| 5357 | Added the ability to display author names without email addresses to RSS 2.0 feeds. |
| 5379 | Added a context processor that puts MEDIA_URL in the context, and added that context processor to the default set. |
| 5385 | You can now use extra(select=...) with values(). |
| 5409 | Fixed problem with specifying a 'fields' argument to a JSON serializer. |
| 5443 | Added list unpacking to for loops in templates. |
| 5516 | Added caching speed-ups to reverse URL matching. |
| 5530 | Allow dots in URL pattern names (although the string in that case is first tried as an import path and only then falls back to being treated as a pattern). |
| 5547 | Added ability to create multipart email messages. |
| 5550 | Added support for custom email headers. |
| 5555 | Added support for regex lookups. |
| 5594 | 'View on site' now works for https URLs. |
| 5630 | Fixed reverse URL creation to work with non-ASCII arguments. |
| 5653 | Added RequestSite class to sites framework. |
| 5658 | Added 'raw' argument to save method, to override any pre-save processing. |
| 5725 | Added a db_type() method to the database Field class. This is a hook for calculating the database column type for a given Field. |
| 5729 | Added support for the suite() method recommended by the Python unittest docs. |
| 5746 | Modified the get_object_or_404/get_list_or_404 shortcuts to also accept QuerySets. |
| 5766 | Added support for database cache table in test database. |
| 5768 | Fixed bug with using values() and extra(select) in the same QuerySet |
| 5771 | Added added set_unusable_password() and has_usable_password() methods to the User object |
| 5803 | Renamed maxlength argument to max_length for oldforms FormFields and db model Fields. This is fully backwards compatible at the moment since the legacy maxlength argument is still supported. Using maxlength will, however, issue a PendingDeprecationWarning when used. |
| 5804 | Added dynamic save_m2m method() to forms created with form_for_model and form_for_instance on save(commit=False). |
| 5844 | Added content_type as an alias for mimetype to the HttpResponse constructor. |
| 5867 | Added documentation for widgets in newforms. |
| 5877 | In generic views, set the default name for the slug field to 'slug'. |
| 5898 | Major refactoring of django.core.management -- it's now a package rather than a 1730-line single module. All django-admin/manage.py commands are now stored in separate modules. |
| 5933 | Fixed model saving so that 0 can be used as a primary key value. |
| 5950 | Began implementing BaseDatabaseOperations? class for every database backend. This class will be used to hold the database-specific methods that currently live at the module level in each backend. |
| 5990 | Added Subversion revision number to Django version string. |
| 6002 | It's now possible again to use Django without a database. This had temporarily gotten buggy after the django.core.management refactoring last week. |
| 6013 | The 'flush' and 'sqlflush' management commands no longer touch tables that Django is not aware of (tables that are not in INSTALLED_APPS and/or do not have associated models). |
| 6019 | Changed the unordered_list template filter to use a more simple format, while maintaining backwards compatibility with the old format. unordered_list now works with a simple list of items. |
| 6039 | In the test client, Added tracking of the client and request that caused a response so that the assertRedirects check can use the correct client when following a redirect. |
Posted by jonny on July 28, 2007

Comments
Eric Florenzano August 1, 2007 at 4:13 a.m.
#5530 is the must-have for me. I absolutely love having names so that I can change my urls later and not have to worry about changing the templates.
Ben Walton September 7, 2007 at 11:24 p.m.
#5379 - Didn't know this, I can delete my custom context processor now. Cheers!
Comments are currently disabled