     will be removed completely in Django 1.4, in favor of a template tag that
     should be inserted into forms.
  
   * All contrib apps use a ``csrf_protect`` decorator to protect the view. This
     requires the use of the csrf_token template tag in the template. If you
     have used custom templates for contrib views, you MUST READ THE :ref:`UPGRADE
     INSTRUCTIONS <ref-csrf-upgrading-notes>` to fix those templates.
  
   * ``CsrfViewMiddleware`` is included in :setting:`MIDDLEWARE_CLASSES` by
     default. This turns on CSRF protection by default, so views that accept
 
</s> remove  * All of the CSRF has moved from contrib to core (with backwards compatible
   imports in the old locations, which are deprecated).
 </s> add  * All of the CSRF has moved from contrib to core (with backwards
   compatible imports in the old locations, which are deprecated and
   will cease to be supported in Django 1.4). </s> remove ``CsrfResponseMiddleware``, the middleware that automatically inserted CSRF
tokens into POST forms in outgoing pages, has been deprecated in favor of a
template tag method (see above), and will be removed completely in Django
1.4. ``CsrfMiddleware``, which includes the functionality of
``CsrfResponseMiddleware`` and ``CsrfViewMiddleware``, has likewise been
deprecated.
 </s> add ``CsrfResponseMiddleware``, the middleware that automatically inserted
CSRF tokens into ``POST`` forms in outgoing pages, has been deprecated
in favor of a template tag method (see above), and will be removed
completely in Django 1.4. ``CsrfMiddleware``, which includes the
functionality of ``CsrfResponseMiddleware`` and
``CsrfViewMiddleware``, has likewise been deprecated. </s> remove definitions to use the new prototype now, just to get it over with.
 </s> add definitions to use the new prototype as soon as possible. </s> remove ``LazyObject`` is an undocumented utility class used for lazily wrapping other
objects of unknown type. In Django 1.1 and earlier, it handled introspection in
a non-standard way, depending on wrapped objects implementing a public method
``get_all_members()``. Since this could easily lead to name clashes, it has been
changed to use the standard method, involving ``__members__`` and ``__dir__()``.
If you used ``LazyObject`` in your own code and implemented the
``get_all_members()`` method for wrapped objects, you need to make the following
changes:
 </s> add ``LazyObject`` is an undocumented utility class used for lazily
wrapping other objects of unknown type. In Django 1.1 and earlier, it
handled introspection in a non-standard way, depending on wrapped
objects implementing a public method named
``get_all_members()``. Since this could easily lead to name clashes,
it has been changed to use the standard Python introspection method,
involving ``__members__`` and ``__dir__()``.  If you used
``LazyObject`` in your own code and implemented the
``get_all_members()`` method for wrapped objects, you need to make the
following changes: </s> remove Template tags that store rendering state on the node itself may experience
problems if they are used with the new :ref:`cached
 </s> add Template tags that store rendering state on their ``Node`` subclass
may experience problems if they are used with the new :ref:`cached
   requires the use of the ``csrf_token`` template tag in the template. If you
     will be removed completely in Django 1.4, in favor of a template tag that
     should be inserted into forms.
  
   * All contrib apps use a ``csrf_protect`` decorator to protect the view. This
   requires the use of the ``csrf_token`` template tag in the template. If you
     have used custom templates for contrib views, you MUST READ THE :ref:`UPGRADE
     INSTRUCTIONS <ref-csrf-upgrading-notes>` to fix those templates.
  
   * ``CsrfViewMiddleware`` is included in :setting:`MIDDLEWARE_CLASSES` by
     default. This turns on CSRF protection by default, so views that accept
keep keep keep keep replace keep keep keep keep keep
 Update 1.2 release notes in anticipation of final release.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@13259 bcc190cf-cafb-0310-a4f2-bffc1f526a37 
docs/releases/1.2.txt