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