1.3.txt 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. ============================================
  2. Django 1.3 release notes - UNDER DEVELOPMENT
  3. ============================================
  4. This page documents release notes for the as-yet-unreleased Django
  5. 1.3. As such, it's tentative and subject to change. It provides
  6. up-to-date information for those who are following trunk.
  7. Django 1.3 includes a number of nifty `new features`_, lots of bug
  8. fixes and an easy upgrade path from Django 1.2.
  9. .. _new features: `What's new in Django 1.3`_
  10. .. _backwards-incompatible-changes-1.3:
  11. Backwards-incompatible changes in 1.3
  12. =====================================
  13. PasswordInput default rendering behavior
  14. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  15. Prior to Django 1.3, a :class:`~django.forms.PasswordInput` would render
  16. data values like any other form. If a form submission raised an error,
  17. the password that was submitted would be reflected to the client as form
  18. data populating the form for resubmission.
  19. This had the potential to leak passwords, as any failed password
  20. attempt would cause the password that was typed to be sent back to the
  21. client.
  22. In Django 1.3, the default behavior of
  23. :class:`~django.forms.PasswordInput` is to suppress the display of
  24. password values. This change doesn't alter the way form data is
  25. validated or handled. It only affects the user experience with
  26. passwords on a form when they make an error submitting form data (such
  27. as on unsuccessful logins, or when completing a registration form).
  28. If you want restore the pre-Django 1.3 behavior, you need to pass in a
  29. custom widget to your form that sets the ``render_value`` argument::
  30. class LoginForm(forms.Form):
  31. username = forms.CharField(max_length=100)
  32. password = forms.PasswordField(widget=forms.PasswordInput(render_value=True))
  33. .. _deprecated-features-1.3:
  34. Features deprecated in 1.3
  35. ==========================
  36. Django 1.3 deprecates some features from earlier releases.
  37. These features are still supported, but will be gradually phased out
  38. over the next few release cycles.
  39. Code taking advantage of any of the features below will raise a
  40. ``PendingDeprecationWarning`` in Django 1.3. This warning will be
  41. silent by default, but may be turned on using Python's `warnings
  42. module`_, or by running Python with a ``-Wd`` or `-Wall` flag.
  43. .. _warnings module: http://docs.python.org/library/warnings.html
  44. In Django 1.4, these warnings will become a ``DeprecationWarning``,
  45. which is *not* silent. In Django 1.5 support for these features will
  46. be removed entirely.
  47. .. seealso::
  48. For more details, see the documentation :doc:`Django's release process
  49. </internals/release-process>` and our :doc:`deprecation timeline
  50. </internals/deprecation>`.`
  51. ``mod_python`` support
  52. ~~~~~~~~~~~~~~~~~~~~~~
  53. The ``mod_python`` library has not had a release since 2007 or a commit since
  54. 2008. The Apache Foundation board voted to remove ``mod_python`` from the set
  55. of active projects in its version control repositories, and its lead developer
  56. has shifted all of his efforts toward the lighter, slimmer, more stable, and
  57. more flexible ``mod_wsgi`` backend.
  58. If you are currently using the ``mod_python`` request handler, it is strongly
  59. encouraged you redeploy your Django instances using :doc:`mod_wsgi
  60. </howto/deployment/modwsgi>`.
  61. What's new in Django 1.3
  62. ========================