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‘srevision_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 aadmin/polymorphic/object_history.html
template in your project that extends fromreversion/object_history.html
orreversion-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 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:
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__
inpolymorphic/__init__.py
. - BACKWARDS INCOMPATIBILITY: Removed automatic proxying of method calls to the queryset class. Use the standard Django methods instead:
# 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 usingadd_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 overridesget_query_set()
while__getattr__()
used the new-styleget_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 thePolymorphicParentModelAdmin
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 overwrittensave()
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 meantrelatedfield__ _underscorefield
instead ofClassName___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 thePolymorphicManager
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 archived changelog.