- New:
- Test against the whole Python-Django matrix with Tox & Travis
- Bugfix:
- Fix tests for Django 2.0
- New:
- Updates python classifier in setup file (#116). Thanks amureki.
- Adds PEP8 validation in travisCI run (#123). Thanks hsmett.
Bugfix:
- Avoids
get_deferred_fields
to be called too many times on_as_dict
(#115). Thanks benjaminrigaud.- Respects
FIELDS_TO_CHECK
in reset_state (#114). Thanks bparker98.
New:
- Drop support for unsupported Django versions: 1.4, 1.5, 1.6 and 1.7 series.
- Fixes issue with verbose mode when the object has not been yet saved in the database (MR #99). Thanks vapkarian.
- Add test coverage for Django 1.11.
- A new attribute
FIELDS_TO_CHECK
has been added toDirtyFieldsMixin
to specify a limited set of fields to check.
Bugfix:
- Correctly handle
ForeignKey.db_column
{}_id
inupdate_fields
. Thanks Hugo Smett.- Fixes #111: Eliminate a memory leak.
- Handle deferred fields in
update_fields
New:
django-dirtyfields
is now tested with PostgreSQL, especially with specific fields
Bugfix:
- Fixes #80: Use of
Field.rel
raises warnings from Django 1.9+- Fixes #84: Use
only()
in conjunction with 2 foreign keys triggers a recursion error- Fixes #77: Shallow copy does not work with Django 1.9's JSONField
- Fixes #88:
get_dirty_fields
on a newly-created model does not work if pk is specified- Fixes #90: Unmark dirty fields only listed in
update_fields
New:
django-dirtyfields
is now compatible with Django 1.10 series (deferred field handling has been updated).
New:
- A new attribute
ENABLE_M2M_CHECK
has been added toDirtyFieldsMixin
to enable/disable m2m check functionality. This parameter is set toFalse
by default. IMPORTANT: backward incompatibility with v1.0.x series. If you were usingcheck_m2m
parameter to check m2m relations, you should now addENABLE_M2M_CHECK = True
to these models inheriting fromDirtyFieldsMixin
. Check the documentation to see more details/examples.
Bugfix:
- Fixing a bug preventing
django-dirtyfields
to work properly on models with custom primary keys.
After several years of existence, django-dirty-fields is mature enough to switch to 1.X version. There is a backward-incompatibility on this version. Please read careful below.
New:
- IMPORTANT:
get_dirty_fields
is now more consistent for models not yet saved in the database.get_dirty_fields
is, in that situation, always returning ALL fields, where it was before returning various results depending on how you initialised your model. It may affect you specially if you are usingget_dirty_fields
in apre_save
receiver. See more details at romgar#65.- Adding compatibility for old _meta API, deprecated in Django 1.10 version and now replaced by an official API.
- General test cleaning.
New:
- Adding Many-to-Many fields comparison method
check_m2m
inDirtyFieldsMixin
.- Adding
verbose
parameter inget_dirty_fields
method to get old AND new field values.
New:
- Adding field comparison method
compare_function
inDirtyFieldsMixin
.- Also adding a specific comparison function
timezone_support_compare
to handle different Datetime situations.
Bugfix:
- Not comparing fields that are deferred (
only
method onQuerySet
).- Being more tolerant when comparing values that can be on another type than expected.
New:
- Adding
save_dirty_fields
method to save only dirty fields in the database.
New:
- Using
copy
to properly track dirty fields on complex fields.- Using
py.test
for tests launching.
Bugfix:
- Preventing django db expressions to be evaluated when testing dirty fields (#39).
New:
- Using
to_python
to avoid false positives when dealing with model fields that internally convert values (#4)
Bugfix:
- Using
attname
instead ofname
on fields to avoid massive useless queries on ForeignKey fields (#34). For this kind of field,get_dirty_fields()
is now returning instance id, instead of instance itself.
New:
- Adding code compatibility for python3,
- Launching travis-ci tests on python3,
- Using
tox
to launch tests on Django 1.5, 1.6, 1.7 and 1.8 versions,- Updating
runtests.py
test script to run properly on every Django version.
Bugfix:
- Catching
Error
when trying to get foreign key object if not existing (#32).
Bugfix:
- Removing
model_to_form
to avoid bug when using models that haveeditable=False
fields.
New:
- Adding
check_relationship
parameter onis_dirty
andget_dirty_field
methods to also check foreign key values.