  issued at a specific database with the `using()` method on
  ``QuerySet`` objects. Individual objects can be saved to a specific database
  by providing a ``using`` argument when you call ``save()``.
  
  'Smart' if tag
  --------------
  
  The :ttag:`if` tag has been upgraded to be much more powerful. First, we've
  added support for comparison operators. No longer will you have to type:
  
  .. code-block:: html+django
 
</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  * If you have more complex requirements for introspection, first rename the
   ``get_all_members()`` method to ``__dir__()``. This is the standard method,
   from Python 2.6 onwards, for supporting introspection. If you require
   support for Python < 2.6, add the following code to the class::
 </s> add  * If you have more complex requirements for introspection, first
   rename the ``get_all_members()`` method to ``__dir__()``. This is
   the standard method, from Python 2.6 onwards, for supporting
   introspection. If you require support for Python versions earlier
   than 2.6, add the following code to the class:: </s> remove iterating over __dict__ to obtain a list of fields, you must now
filter the ``_state`` attribute out of ``__dict__``.
 </s> add iterating over ``__dict__`` to obtain a list of fields, you must now
be prepared to handle or filter out the ``_state`` attribute. </s> remove    requires the use of the csrf_token template tag in the template. If you
 </s> add    requires the use of the ``csrf_token`` template tag in the template. If you </s> remove Prior to Django 1.1, Django used a number of settings to control access to a
single database. Django 1.2 introduces support for multiple databases, and as
a result, the way you define database settings has changed.
 </s> add Prior to Django 1.1, Django used a number of settings to control
access to a single database. Django 1.2 introduces support for
multiple databases, and as a result the way you define database
settings has changed.
"Smart" :ttag:`if` tag
----------------------
  issued at a specific database with the `using()` method on
  ``QuerySet`` objects. Individual objects can be saved to a specific database
  by providing a ``using`` argument when you call ``save()``.
  
"Smart" :ttag:`if` tag
----------------------
"Smart" :ttag:`if` tag
----------------------
  
  The :ttag:`if` tag has been upgraded to be much more powerful. First, we've
  added support for comparison operators. No longer will you have to type:
  
  .. code-block:: html+django
keep keep keep keep replace 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