- 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_fieldsto be called too many times on_as_dict(#115). Thanks benjaminrigaud.- Respects
FIELDS_TO_CHECKin 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_CHECKhas been added toDirtyFieldsMixinto specify a limited set of fields to check.
Bugfix:
- Correctly handle
ForeignKey.db_column{}_idinupdate_fields. Thanks Hugo Smett.- Fixes #111: Eliminate a memory leak.
- Handle deferred fields in
update_fields
New:
django-dirtyfieldsis now tested with PostgreSQL, especially with specific fields
Bugfix:
- Fixes #80: Use of
Field.relraises 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_fieldson a newly-created model does not work if pk is specified- Fixes #90: Unmark dirty fields only listed in
update_fields
New:
django-dirtyfieldsis now compatible with Django 1.10 series (deferred field handling has been updated).
New:
- A new attribute
ENABLE_M2M_CHECKhas been added toDirtyFieldsMixinto enable/disable m2m check functionality. This parameter is set toFalseby default. IMPORTANT: backward incompatibility with v1.0.x series. If you were usingcheck_m2mparameter to check m2m relations, you should now addENABLE_M2M_CHECK = Trueto these models inheriting fromDirtyFieldsMixin. Check the documentation to see more details/examples.
Bugfix:
- Fixing a bug preventing
django-dirtyfieldsto 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_fieldsis now more consistent for models not yet saved in the database.get_dirty_fieldsis, 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_fieldsin apre_savereceiver. 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_m2minDirtyFieldsMixin.- Adding
verboseparameter inget_dirty_fieldsmethod to get old AND new field values.
New:
- Adding field comparison method
compare_functioninDirtyFieldsMixin.- Also adding a specific comparison function
timezone_support_compareto handle different Datetime situations.
Bugfix:
- Not comparing fields that are deferred (
onlymethod onQuerySet).- Being more tolerant when comparing values that can be on another type than expected.
New:
- Adding
save_dirty_fieldsmethod to save only dirty fields in the database.
New:
- Using
copyto properly track dirty fields on complex fields.- Using
py.testfor tests launching.
Bugfix:
- Preventing django db expressions to be evaluated when testing dirty fields (#39).
New:
- Using
to_pythonto avoid false positives when dealing with model fields that internally convert values (#4)
Bugfix:
- Using
attnameinstead ofnameon 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
toxto launch tests on Django 1.5, 1.6, 1.7 and 1.8 versions,- Updating
runtests.pytest script to run properly on every Django version.
Bugfix:
- Catching
Errorwhen trying to get foreign key object if not existing (#32).
Bugfix:
- Removing
model_to_formto avoid bug when using models that haveeditable=Falsefields.
New:
- Adding
check_relationshipparameter onis_dirtyandget_dirty_fieldmethods to also check foreign key values.