Changelog ========= Version 0.9.2 (2016-05-04) -------------------------- * Fix error when using ``date_hierarchy`` field in the admin * Fixed Django 1.10 warning in admin add-type view. Version 0.9.1 (2016-02-18) -------------------------- * Fixed support for ``PolymorphicManager.from_queryset()`` for custom query sets. * Fixed Django 1.7 ``changeform_view()`` redirection to the child admin site. This fixes custom admin code that uses these views, such as django-reversion_'s ``revision_view()`` / ``recover_view()``. * Fixed ``.only('pk')`` field support. * Fixed ``object_history_template`` breadcrumb. **NOTE:** when using django-reversion_ / django-reversion-compare_, make sure to implement a ``admin/polymorphic/object_history.html`` template in your project that extends from ``reversion/object_history.html`` or ``reversion-compare/object_history.html`` respectively. Version 0.9 (2016-02-17) ------------------------ * Added ``.only()`` and ``.defer()`` support. * Added support for Django 1.8 complex expressions in ``.annotate()`` / ``.aggregate()``. * Fix Django 1.9 handling of custom URLs. The new change-URL redirect overlapped any custom URLs defined in the child admin. * Fix Django 1.9 support in the admin. * Fix missing ``history_view()`` redirection to the child admin, which is important for django-reversion_ support. See the documentation for hints for :ref:`django-reversion-compare support `. Version 0.8.1 (2015-12-29) -------------------------- * Fixed support for reverse relations for ``relname___field`` when the field starts with an ``_`` character. Otherwise, the query will be interpreted as subclass lookup (``ClassName___field``). Version 0.8 (2015-12-28) ------------------------ * Added Django 1.9 compatibility. * Renamed ``polymorphic.manager`` => ``polymorphic.managers`` for consistentcy. * **BACKWARDS INCOMPATIBILITY:** The import paths have changed to support Django 1.9. Instead of ``from polymorphic import X``, you'll have to import from the proper package. For example: .. code-block:: python from polymorphic.models import PolymorphicModel from polymorphic.managers import PolymorphicManager, PolymorphicQuerySet from polymorphic.showfields import ShowFieldContent, ShowFieldType, ShowFieldTypeAndContent * **BACKWARDS INCOMPATIBILITY:** Removed ``__version__.py`` in favor of a standard ``__version__`` in ``polymorphic/__init__.py``. * **BACKWARDS INCOMPATIBILITY:** Removed automatic proxying of method calls to the queryset class. Use the standard Django methods instead: .. code-block:: python # In model code: objects = PolymorphicQuerySet.as_manager() # For manager code: MyCustomManager = PolymorphicManager.from_queryset(MyCustomQuerySet) Version 0.7.2 (2015-10-01) -------------------------- * Added ``queryset.as_manager()`` support for Django 1.7/1.8 * Optimize model access for non-dumpdata usage; avoid ``__getattribute__()`` call each time to access the manager. * Fixed 500 error when using invalid PK's in the admin URL, return 404 instead. * Fixed possible issues when using an custom ``AdminSite`` class for the parent object. * Fixed Pickle exception when polymorphic model is cached. Version 0.7.1 (2015-04-30) -------------------------- * Fixed Django 1.8 support for related field widgets. Version 0.7 (2015-04-08) ------------------------ * Added Django 1.8 support * Added support for custom primary key defined using ``mybase_ptr = models.OneToOneField(BaseClass, parent_link=True, related_name="...")``. * Fixed Python 3 issue in the admin * Fixed ``_default_manager`` to be consistent with Django, it's now assigned directly instead of using ``add_to_class()`` * Fixed 500 error for admin URLs without a '/', e.g. ``admin/app/parentmodel/id``. * Fixed preserved filter for Django admin in delete views * Removed test noise for diamond inheritance problem (which Django 1.7 detects) Version 0.6.1 (2014-12-30) -------------------------- * Remove Django 1.7 warnings * Fix Django 1.4/1.5 queryset calls on related objects for unknown methods. The ``RelatedManager`` code overrides ``get_query_set()`` while ``__getattr__()`` used the new-style ``get_queryset()``. * Fix validate_model_fields(), caused errors when metaclass raises errors Version 0.6 (2014-10-14) ------------------------ * Added Django 1.7 support. * Added permission check for all child types. * **BACKWARDS INCOMPATIBILITY:** the ``get_child_type_choices()`` method receives 2 arguments now (request, action). If you have overwritten this method in your code, make sure the method signature is updated accordingly. Version 0.5.6 (2014-07-21) -------------------------- * Added ``pk_regex`` to the ``PolymorphicParentModelAdmin`` to support non-integer primary keys. * Fixed passing ``?ct_id=`` to the add view for Django 1.6 (fixes compatibility with django-parler_). Version 0.5.5 (2014-04-29) -------------------------- * Fixed ``get_real_instance_class()`` for proxy models (broke in 0.5.4). Version 0.5.4 (2014-04-09) -------------------------- * Fix ``.non_polymorphic()`` to returns a clone of the queryset, instead of effecting the existing queryset. * Fix missing ``alters_data = True`` annotations on the overwritten ``save()`` methods. * Fix infinite recursion bug in the admin with Django 1.6+ * Added detection of bad ``ContentType`` table data. Version 0.5.3 (2013-09-17) -------------------------- * Fix TypeError when ``base_form`` was not defined. * Fix passing ``/admin/app/model/id/XYZ`` urls to the correct admin backend. There is no need to include a ``?ct_id=..`` field, as the ID already provides enough information. Version 0.5.2 (2013-09-05) -------------------------- * Fix Grappelli_ breadcrumb support in the views. * Fix unwanted ``___`` handling in the ORM when a field name starts with an underscore; this detects you meant ``relatedfield__ _underscorefield`` instead of ``ClassName___field``. * Fix missing permission check in the "add type" view. This was caught however in the next step. * Fix admin validation errors related to additional non-model form fields. Version 0.5.1 (2013-07-05) -------------------------- * Add Django 1.6 support. * Fix Grappelli_ theme support in the "Add type" view. Version 0.5 (2013-04-20) ------------------------ * Add Python 3.2 and 3.3 support * Fix errors with ContentType objects that don't refer to an existing model. Version 0.4.2 (2013-04-10) -------------------------- * Used proper ``__version__`` marker. Version 0.4.1 (2013-04-10) -------------------------- * Add Django 1.5 and 1.6 support * Add proxy model support * Add default admin ``list_filter`` for polymorphic model type. * Fix queryset support of related objects. * Performed an overall cleanup of the project * **Deprecated** the ``queryset_class`` argument of the ``PolymorphicManager`` constructor, use the class attribute instead. * **Dropped** Django 1.1, 1.2 and 1.3 support Version 0.4 (2013-03-25) ------------------------ * Update example project for Django 1.4 * Added tox and Travis configuration Version 0.3.1 (2013-02-28) -------------------------- * SQL optimization, avoid query in pre_save_polymorphic() Version 0.3 (2013-02-28) ------------------------ Many changes to the codebase happened, but no new version was released to pypi for years. 0.3 contains fixes submitted by many contributors, huge thanks to everyone! * Added a polymorphic admin interface. * PEP8 and code cleanups by various authors Version 0.2 (2011-04-27) ------------------------ The 0.2 release serves as legacy release. It supports Django 1.1 up till 1.4 and Python 2.4 up till 2.7. For a detailed list of it's changes, see the :doc:`archived changelog `. .. _Grappelli: http://grappelliproject.com/ .. _django-parler: https://github.com/edoburu/django-parler .. _django-reversion: https://github.com/etianen/django-reversion .. _django-reversion-compare: https://github.com/jedie/django-reversion-compare