| 1 |
================================= |
|---|
| 2 |
Django version 0.95 release notes |
|---|
| 3 |
================================= |
|---|
| 4 |
|
|---|
| 5 |
|
|---|
| 6 |
Welcome to the Django 0.95 release. |
|---|
| 7 |
|
|---|
| 8 |
This represents a significant advance in Django development since the 0.91 |
|---|
| 9 |
release in January 2006. The details of every change in this release would be |
|---|
| 10 |
too extensive to list in full, but a summary is presented below. |
|---|
| 11 |
|
|---|
| 12 |
Suitability and API stability |
|---|
| 13 |
============================= |
|---|
| 14 |
|
|---|
| 15 |
This release is intended to provide a stable reference point for developers |
|---|
| 16 |
wanting to work on production-level applications that use Django. |
|---|
| 17 |
|
|---|
| 18 |
However, it's not the 1.0 release, and we'll be introducing further changes |
|---|
| 19 |
before 1.0. For a clear look at which areas of the framework will change (and |
|---|
| 20 |
which ones will *not* change) before 1.0, see the api-stability.txt file, which |
|---|
| 21 |
lives in the docs/ directory of the distribution. |
|---|
| 22 |
|
|---|
| 23 |
You may have a need to use some of the features that are marked as |
|---|
| 24 |
"subject to API change" in that document, but that's OK with us as long as it's |
|---|
| 25 |
OK with you, and as long as you understand APIs may change in the future. |
|---|
| 26 |
|
|---|
| 27 |
Fortunately, most of Django's core APIs won't be changing before version 1.0. |
|---|
| 28 |
There likely won't be as big of a change between 0.95 and 1.0 versions as there |
|---|
| 29 |
was between 0.91 and 0.95. |
|---|
| 30 |
|
|---|
| 31 |
Changes and new features |
|---|
| 32 |
======================== |
|---|
| 33 |
|
|---|
| 34 |
The major changes in this release (for developers currently using the 0.91 |
|---|
| 35 |
release) are a result of merging the 'magic-removal' branch of development. |
|---|
| 36 |
This branch removed a number of constraints in the way Django code had to be |
|---|
| 37 |
written that were a consequence of decisions made in the early days of Django, |
|---|
| 38 |
prior to its open-source release. It's now possible to write more natural, |
|---|
| 39 |
Pythonic code that works as expected, and there's less "black magic" happening |
|---|
| 40 |
behind the scenes. |
|---|
| 41 |
|
|---|
| 42 |
Aside from that, another main theme of this release is a dramatic increase in |
|---|
| 43 |
usability. We've made countless improvements in error messages, documentation, |
|---|
| 44 |
etc., to improve developers' quality of life. |
|---|
| 45 |
|
|---|
| 46 |
The new features and changes introduced in 0.95 include: |
|---|
| 47 |
|
|---|
| 48 |
* Django now uses a more consistent and natural filtering interface for |
|---|
| 49 |
retrieving objects from the database. |
|---|
| 50 |
|
|---|
| 51 |
* User-defined models, functions and constants now appear in the module |
|---|
| 52 |
namespace they were defined in. (Previously everything was magically |
|---|
| 53 |
transferred to the django.models.* namespace.) |
|---|
| 54 |
|
|---|
| 55 |
* Some optional applications, such as the FlatPage, Sites and Redirects |
|---|
| 56 |
apps, have been decoupled and moved into django.contrib. If you don't |
|---|
| 57 |
want to use these applications, you no longer have to install their |
|---|
| 58 |
database tables. |
|---|
| 59 |
|
|---|
| 60 |
* Django now has support for managing database transactions. |
|---|
| 61 |
|
|---|
| 62 |
* We've added the ability to write custom authentication and authorization |
|---|
| 63 |
backends for authenticating users against alternate systems, such as |
|---|
| 64 |
LDAP. |
|---|
| 65 |
|
|---|
| 66 |
* We've made it easier to add custom table-level functions to models, |
|---|
| 67 |
through a new "Manager" API. |
|---|
| 68 |
|
|---|
| 69 |
* It's now possible to use Django without a database. This simply means |
|---|
| 70 |
that the framework no longer requires you to have a working database set |
|---|
| 71 |
up just to serve dynamic pages. In other words, you can just use |
|---|
| 72 |
URLconfs/views on their own. Previously, the framework required that a |
|---|
| 73 |
database be configured, regardless of whether you actually used it. |
|---|
| 74 |
|
|---|
| 75 |
* It's now more explicit and natural to override save() and delete() |
|---|
| 76 |
methods on models, rather than needing to hook into the pre_save() and |
|---|
| 77 |
post_save() method hooks. |
|---|
| 78 |
|
|---|
| 79 |
* Individual pieces of the framework now can be configured without |
|---|
| 80 |
requiring the setting of an environment variable. This permits use of, |
|---|
| 81 |
for example, the Django templating system inside other applications. |
|---|
| 82 |
|
|---|
| 83 |
* More and more parts of the framework have been internationalized, as |
|---|
| 84 |
we've expanded internationalization (i18n) support. The Django |
|---|
| 85 |
codebase, including code and templates, has now been translated, at least |
|---|
| 86 |
in part, into 31 languages. From Arabic to Chinese to Hungarian to Welsh, |
|---|
| 87 |
it is now possible to use Django's admin site in your native language. |
|---|
| 88 |
|
|---|
| 89 |
The number of changes required to port from 0.91-compatible code to the 0.95 |
|---|
| 90 |
code base are significant in some cases. However, they are, for the most part, |
|---|
| 91 |
reasonably routine and only need to be done once. A list of the necessary |
|---|
| 92 |
changes is described in the `Removing The Magic`_ wiki page. There is also an |
|---|
| 93 |
easy checklist_ for reference when undertaking the porting operation. |
|---|
| 94 |
|
|---|
| 95 |
.. _Removing The Magic: http://code.djangoproject.com/wiki/RemovingTheMagic |
|---|
| 96 |
.. _checklist: http://code.djangoproject.com/wiki/MagicRemovalCheatSheet1 |
|---|
| 97 |
|
|---|
| 98 |
Problem reports and getting help |
|---|
| 99 |
================================ |
|---|
| 100 |
|
|---|
| 101 |
Need help resolving a problem with Django? The documentation in the |
|---|
| 102 |
distribution is also available online_ at the `Django website`_. The FAQ_ |
|---|
| 103 |
document is especially recommended, as it contains a number of issues that |
|---|
| 104 |
come up time and again. |
|---|
| 105 |
|
|---|
| 106 |
For more personalized help, the `django-users`_ mailing list is a very active |
|---|
| 107 |
list, with more than 2,000 subscribers who can help you solve any sort of |
|---|
| 108 |
Django problem. We recommend you search the archives first, though, because |
|---|
| 109 |
many common questions appear with some regularity, and any particular problem |
|---|
| 110 |
may already have been answered. |
|---|
| 111 |
|
|---|
| 112 |
Finally, for those who prefer the more immediate feedback offered by IRC, |
|---|
| 113 |
there's a #django channel on irc.freenode.net that is regularly populated by |
|---|
| 114 |
Django users and developers from around the world. Friendly people are usually |
|---|
| 115 |
available at any hour of the day -- to help, or just to chat. |
|---|
| 116 |
|
|---|
| 117 |
.. _online: http://www.djangoproject.com/documentation/ |
|---|
| 118 |
.. _Django website: http://www.djangoproject.com/ |
|---|
| 119 |
.. _FAQ: http://www.djangoproject.com/documentation/faq/ |
|---|
| 120 |
.. _django-users: http://groups.google.com/group/django-users |
|---|
| 121 |
|
|---|
| 122 |
Thanks for using Django! |
|---|
| 123 |
|
|---|
| 124 |
The Django Team |
|---|
| 125 |
July 2006 |
|---|