===================
django-pgfields 1.0
===================

Welcome to django-pgfields 1.0!

Overview
--------

This release is considered the first true, stable release of
django-pgfields. It adds sufficient support for tools within the Django
ecosystem (gis, south) to be usable, and all documented aspects of the
module should not change at this point, except to accomodate a substantial
change in Django itself.

This release of django-pgfields contains the following major features:

Features
--------

* Added `GeoDjango support <#geodjango-support>`_.
* Added an `improved repr <#improved-repr>`_ implementation to Model.


GeoDjango Support
-----------------

django-pgfields 1.0 resolves a previously-existing conflict between
django-pgfields and GeoDjango (``django.contrib.gis``).

Because both django-pgfields and GeoDjango implement their additional features
by subclassing several classes within Django itself, it wasn't possible
to use both of them.

django-pgfields 1.0 removes this limitation by introspecting your database
backend setting and assigning to models an appropriate Manager class. So,
if you are using the ``django.contrib.gis.db.backends.postgis`` backend,
you'll get our GeoManager subclass (without having to specify anything!), while
if you're using the vanilla Django PostgreSQL backend, you'll get our
Manager subclass.

This functionality is provided across-the-board. However, if our introspection
gets it wrong, you can define a ``DJANGOPG_DEFAULT_MANAGER`` setting,
which will be applied to all models in lieu of django-pgfields' introspection.
This is easier than manually assigning a manager to every model.


Improved Repr
-------------

django-pgfields 1.0 provides an improved ``__repr__`` implementation on
the base Model, from which your models inherit.

As this is not the core mission of django-pgfields, this functionality is
provided on an opt-in basis, and will only be activated if you set a particular setting.

For more information, see the
`improved repr documentation <../misc.html#improved-repr>`_.


Minor Improvements
------------------

* If ``auto_add=True`` is set on a UUID field, it now implies
  ``editable=False``. This makes it behave as much like AutoField as possible,
  since a primary key replacement is one of the most likely reasons to use
  auto_add at all.
