Changelog
### 5.0.0
```
------------------
- Add formal support for `Django 5.1`
- Remove MonitorField deprecation warning. `None` - instead of
`django.utils.timezone.now` will be used when nullable and no default provided (GH-599)
- Add deprecation warning for MonitorField. The default value will be `None`
instead of `django.utils.timezone.now` - when nullable and without a default.
- Add Brazilian Portuguese translation (GH-578)
- Don't use `post_init` signal for initialize tracker
- Make `contribute_to_class()` in `StatusField`, `MonitorField` and `SplitField`
forward additional arguments to Django
- `SplitField` no longer accepts `no_excerpt_field` as a keyword argument
- Make `soft` argument to `SoftDeletableModel.delete()` keyword-only
- `JoinManager` and `JoinManagerMixin` have been deprecated;
please use ``JoinQueryset.as_manager()`` instead
- Change `SoftDeletableQuerySetMixin.delete` to replicate Django's API.
```
### 4.5.1
```
------------------
- Remove `JoinQueryset.get_quoted_query()` by mthuurne (GH-618)
```
### 4.5.0
```
------------------
- Don't use `post_init` signal for initialize tracker by meanmail in - (GH-556)
- clarify docs for managers of SoftDeletableModel by tadamcz in - (GH-589)
- [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in - (GH-575)
- `Language Support` - Add translations for Brazilian Portuguese by gmcrocetti in - (GH-578)
- Remove dead `init_deferred_fields` method by joecox in - (GH-580)
- Update where `ConnectionDoesNotExist` is imported from by mthuurne in - (GH-566)
- Remove arguments from `InheritanceQuerySetMixin._clone()` by mthuurne in - (GH-567)
- Allow running tests using sqlite by jayvdb in - (GH-516)
- `MonitorField` - Change default to None when the field is nullable by gmcrocetti in - (GH-577)
- Explicitly re-export names from `__init__` module by mthuurne in - (GH-591)
- Switch from freezegun to time-machine. by adamchainz in - (GH-510)
- USE_TZ = True by foarsitter in - (GH-593)
- Remove redundant definition of `JoinManager` from tests by mthuurne in - (GH-594)
- Pass reason to `skip` decorator by mthuurne in - (GH-595)
- Resolve name clash among test models by mthuurne in - (GH-596)
- Remove obsolete `tests.signals` module by mthuurne in - (GH-597)
- Remove obsolete test models by mthuurne in - (GH-598)
- Postgresql docker container for local development by foarsitter in - (GH-563)
- [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in - (GH-602)
- Add issue-manager by foarsitter in - (GH-600)
- Translation files by foarsitter in - (GH-608)
```
### 4.4.0
```
------------------
- Add support for `Python 3.11` (GH-545)
- Add support for `Python 3.12` (GH-545)
- Drop support for `Python 3.7` (GH-545)
- Add support for `Django 4.2`
- Add support for `Django 5.0`
- Remove ``SaveSignalHandlingModel``. This model used a modified copy of the internal Django method `Model.save_base()`
and had not been updated for upstream bug fixes changes since its addition.
- Add Swedish translation
- Use proper column name instead of attname (GH-573)
- Fix ValueError when calling prefetch_related for tracked ForeignKey fields
```
### 4.3.1
```
------------------
- Confirm support for `Django 4.0`
- Add Spanish translation
- Add French translation
- Drop Django 1.7 workaround from `select_subclasses()`
- Drop support for `Django < 3.2`
- Drop support for `Python 3.6`
- Confirm support for `Django 4.1`
```
### 4.3.0
```
-----
- Never released due to packaging issues.
```
### 4.2.0
```
------------------
- Add support for `Django 3.2`
- Drop support for `Django 3.0`
- Add support for `Python 3.10`
- Added urlsafe token field.
- Introduce context manager for FieldTracker state reset (GH-491)
- Fix performance regression of FieldTracker on FileField subclasses on Django 3.1+
(GH-498)
```
### 4.1.1
```
------------------
- Applied `isort` to codebase (Refs GH-402)
- Fix `TypeError` in save when model inherits from both TimeStampModel
and StatusModel. (Fixes GH-465)
```
### 4.1.0
```
------------------
**Breaking changes:**
- `FieldTracker` now marks fields as not changed after `refresh_from_db`
respecting `fields` argument (GH-404)
- `FieldTracker` now respects `update_fields` changed in overridden `save()`
method (GH-404)
- `FieldTracker` now resets states after `pre_save()` and not anymore `save()`
signals, possibly altering the behaviour of overridden `save()`
methods (GH-404)
**Other changes:**
- Update InheritanceQuerySetMixin to avoid querying too much tables
- TimeStampedModel now automatically adds 'modified' field as an update_fields
parameter even if it is forgotten while using save()
- Replace ugettext_lazy with gettext_lazy to satisfy Django deprecation warning
- Add available_objects manager to SoftDeletableModel and add deprecation
warning to objects manager.
- StatusModel now automatically adds 'status_changed' field during save as an
update_fieldsparameter when 'status' is present in it to make sure it is not
forgotten.
- Update test requirements
- Move tests to GitHub Actions: https://github.com/jazzband/django-model-utils/actions
- Drop support for `Django 2.1`
- Add support for `Python 3.9`
- Add support for `Django 3.1`
```
### 4.0.0
```
------------------
- Added `Choices.subset`.
- Remove hacks for previously supported Django versions. (Fixes GH-390)
- Dropped support for Python 2.7. (Fixes GH-393)
- Dropped usage of `six`
- Drop support for `Django 1.11`
- Add support for `Python 3.8`
- Add support for `Django 3.0`
```
### 3.2.0
```
-------------------
- Catch `AttributeError` for deferred abstract fields, fixes GH-331.
- Update documentation to explain usage of `timeframed` model manager, fixes GH-118
- Honor `OneToOneField.parent_link=False`.
- Fix handling of deferred attributes on Django 1.10+, fixes GH-278
- Fix `FieldTracker.has_changed()` and `FieldTracker.previous()` to return
correct responses for deferred fields.
- Add Simplified Chinese translations.
- Update AutoLastModifiedField so that at instance creation it will
always be set equal to created to make querying easier. Fixes GH-254
- Support `reversed` for all kinds of `Choices` objects, fixes GH-309
- Fix Model instance non picklable GH-330
- Fix patched `save` in FieldTracker
- Upgrades test requirements (pytest, pytest-django, pytest-cov) and
skips tox test with Python 3.5 and Django (trunk)
- Add UUIDModel and UUIDField support.
```
### 3.1.2
```
------------------
- Update InheritanceIterable to inherit from
ModelIterable instead of BaseIterable, fixes GH-277.
- Add all_objects Manager for 'SoftDeletableModel' to include soft
deleted objects on queries as per issue GH-255
```
### 3.1.1
```
------------------
- Update classifiers and README via GH-306, fixes GH-305
```
### 3.1.0
```
------------------
- Support for Django 2.0 via GH-298, fixes GH-297
- Remove old travis script via GH-300
- Fix codecov and switch to py.test 301
```
Links
- PyPI: https://pypi.org/project/django-model-utils
- Changelog: https://data.safetycli.com/changelogs/django-model-utils/
- Repo: https://github.com/jazzband/django-model-utils
This PR updates django-model-utils from 3.0.0 to 5.0.0.
Changelog
### 5.0.0 ``` ------------------ - Add formal support for `Django 5.1` - Remove MonitorField deprecation warning. `None` - instead of `django.utils.timezone.now` will be used when nullable and no default provided (GH-599) - Add deprecation warning for MonitorField. The default value will be `None` instead of `django.utils.timezone.now` - when nullable and without a default. - Add Brazilian Portuguese translation (GH-578) - Don't use `post_init` signal for initialize tracker - Make `contribute_to_class()` in `StatusField`, `MonitorField` and `SplitField` forward additional arguments to Django - `SplitField` no longer accepts `no_excerpt_field` as a keyword argument - Make `soft` argument to `SoftDeletableModel.delete()` keyword-only - `JoinManager` and `JoinManagerMixin` have been deprecated; please use ``JoinQueryset.as_manager()`` instead - Change `SoftDeletableQuerySetMixin.delete` to replicate Django's API. ``` ### 4.5.1 ``` ------------------ - Remove `JoinQueryset.get_quoted_query()` by mthuurne (GH-618) ``` ### 4.5.0 ``` ------------------ - Don't use `post_init` signal for initialize tracker by meanmail in - (GH-556) - clarify docs for managers of SoftDeletableModel by tadamcz in - (GH-589) - [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in - (GH-575) - `Language Support` - Add translations for Brazilian Portuguese by gmcrocetti in - (GH-578) - Remove dead `init_deferred_fields` method by joecox in - (GH-580) - Update where `ConnectionDoesNotExist` is imported from by mthuurne in - (GH-566) - Remove arguments from `InheritanceQuerySetMixin._clone()` by mthuurne in - (GH-567) - Allow running tests using sqlite by jayvdb in - (GH-516) - `MonitorField` - Change default to None when the field is nullable by gmcrocetti in - (GH-577) - Explicitly re-export names from `__init__` module by mthuurne in - (GH-591) - Switch from freezegun to time-machine. by adamchainz in - (GH-510) - USE_TZ = True by foarsitter in - (GH-593) - Remove redundant definition of `JoinManager` from tests by mthuurne in - (GH-594) - Pass reason to `skip` decorator by mthuurne in - (GH-595) - Resolve name clash among test models by mthuurne in - (GH-596) - Remove obsolete `tests.signals` module by mthuurne in - (GH-597) - Remove obsolete test models by mthuurne in - (GH-598) - Postgresql docker container for local development by foarsitter in - (GH-563) - [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in - (GH-602) - Add issue-manager by foarsitter in - (GH-600) - Translation files by foarsitter in - (GH-608) ``` ### 4.4.0 ``` ------------------ - Add support for `Python 3.11` (GH-545) - Add support for `Python 3.12` (GH-545) - Drop support for `Python 3.7` (GH-545) - Add support for `Django 4.2` - Add support for `Django 5.0` - Remove ``SaveSignalHandlingModel``. This model used a modified copy of the internal Django method `Model.save_base()` and had not been updated for upstream bug fixes changes since its addition. - Add Swedish translation - Use proper column name instead of attname (GH-573) - Fix ValueError when calling prefetch_related for tracked ForeignKey fields ``` ### 4.3.1 ``` ------------------ - Confirm support for `Django 4.0` - Add Spanish translation - Add French translation - Drop Django 1.7 workaround from `select_subclasses()` - Drop support for `Django < 3.2` - Drop support for `Python 3.6` - Confirm support for `Django 4.1` ``` ### 4.3.0 ``` ----- - Never released due to packaging issues. ``` ### 4.2.0 ``` ------------------ - Add support for `Django 3.2` - Drop support for `Django 3.0` - Add support for `Python 3.10` - Added urlsafe token field. - Introduce context manager for FieldTracker state reset (GH-491) - Fix performance regression of FieldTracker on FileField subclasses on Django 3.1+ (GH-498) ``` ### 4.1.1 ``` ------------------ - Applied `isort` to codebase (Refs GH-402) - Fix `TypeError` in save when model inherits from both TimeStampModel and StatusModel. (Fixes GH-465) ``` ### 4.1.0 ``` ------------------ **Breaking changes:** - `FieldTracker` now marks fields as not changed after `refresh_from_db` respecting `fields` argument (GH-404) - `FieldTracker` now respects `update_fields` changed in overridden `save()` method (GH-404) - `FieldTracker` now resets states after `pre_save()` and not anymore `save()` signals, possibly altering the behaviour of overridden `save()` methods (GH-404) **Other changes:** - Update InheritanceQuerySetMixin to avoid querying too much tables - TimeStampedModel now automatically adds 'modified' field as an update_fields parameter even if it is forgotten while using save() - Replace ugettext_lazy with gettext_lazy to satisfy Django deprecation warning - Add available_objects manager to SoftDeletableModel and add deprecation warning to objects manager. - StatusModel now automatically adds 'status_changed' field during save as an update_fieldsparameter when 'status' is present in it to make sure it is not forgotten. - Update test requirements - Move tests to GitHub Actions: https://github.com/jazzband/django-model-utils/actions - Drop support for `Django 2.1` - Add support for `Python 3.9` - Add support for `Django 3.1` ``` ### 4.0.0 ``` ------------------ - Added `Choices.subset`. - Remove hacks for previously supported Django versions. (Fixes GH-390) - Dropped support for Python 2.7. (Fixes GH-393) - Dropped usage of `six` - Drop support for `Django 1.11` - Add support for `Python 3.8` - Add support for `Django 3.0` ``` ### 3.2.0 ``` ------------------- - Catch `AttributeError` for deferred abstract fields, fixes GH-331. - Update documentation to explain usage of `timeframed` model manager, fixes GH-118 - Honor `OneToOneField.parent_link=False`. - Fix handling of deferred attributes on Django 1.10+, fixes GH-278 - Fix `FieldTracker.has_changed()` and `FieldTracker.previous()` to return correct responses for deferred fields. - Add Simplified Chinese translations. - Update AutoLastModifiedField so that at instance creation it will always be set equal to created to make querying easier. Fixes GH-254 - Support `reversed` for all kinds of `Choices` objects, fixes GH-309 - Fix Model instance non picklable GH-330 - Fix patched `save` in FieldTracker - Upgrades test requirements (pytest, pytest-django, pytest-cov) and skips tox test with Python 3.5 and Django (trunk) - Add UUIDModel and UUIDField support. ``` ### 3.1.2 ``` ------------------ - Update InheritanceIterable to inherit from ModelIterable instead of BaseIterable, fixes GH-277. - Add all_objects Manager for 'SoftDeletableModel' to include soft deleted objects on queries as per issue GH-255 ``` ### 3.1.1 ``` ------------------ - Update classifiers and README via GH-306, fixes GH-305 ``` ### 3.1.0 ``` ------------------ - Support for Django 2.0 via GH-298, fixes GH-297 - Remove old travis script via GH-300 - Fix codecov and switch to py.test 301 ```Links
- PyPI: https://pypi.org/project/django-model-utils - Changelog: https://data.safetycli.com/changelogs/django-model-utils/ - Repo: https://github.com/jazzband/django-model-utils