All notable changes to model_bakery
will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Support to Field
db_default
value - Support to Python 3.13
- Reset
content_type
andobject_id
fields when the content object isNone
- Allow
None
value for generic foreign keys within iterators - Make
TextField
generator respectmax_length
- Deprecate
model_bakery.random_gen.gen_text
in favor ofmodel_bakery.random_gen.gen_string
- Do not handle GFK fields when the object is None
- docs: Add Django settings example for custom field generators
- Align GFK and content type fields generation
- Allow
prepare()
to be used with GFK
- Handle bulk creation when using reverse related name
- Add Django 5.1 support
- Fix support of
GenericForeignKey
fields in combination with_fill_optional
- Fix
make_recipe
to work with_quantity
(#28)
- Replace expensive
count()
with cheapexists()
- Add Django 5.0 support
- Allow baking without
contenttypes
framework
- Drop Django 3.2 and 4.1 support (reached end of life)
- Add support to
auto_now
andauto_now_add
fields.
- Remove unnecessary casting to string methods
random_gen.gen_slug
andrandom_gen.gen_string
- [doc] Update installation command
- [dev] Test coverage report
- Improved performance of
Baker.get_fields()
- [dev] Cleanup Sphinx documentation config
- [dev] Update
pre-commit
config - [dev] CI: remove hard requirement on linters for tests to run
- Add Python 3.12 support
- Revert erroneous optimisation of related logic (fix #439)
- [dev] Bring tox back
- forward "_create_files" flag to child generators for relational fields
- Small improvements to
recipe.py::_mapping
- Improvements to
baker.py::bulk_create
- [dev] Replaced
pycodestyle
,pydocstyle
,flake8
andisort
withruff
- [dev] Drop tox in favor of using GitHub Actions matrix
- Drop
baker.py::is_iterator
- Drop Python 3.7 support (reached end of life)
- Add support for global seeding to baker random generation
- Add support for CharField with max_length=None
- Fix utils.seq with start=0
- Add psycopg3 support for Django 4.2
- Enforce Python 3.7 as a minimum version in project metadata
- dropped support for
FloatRangeField
as it was removed in Django 3.1 - [dev] Temporary drop Django 4.2 to package classifiers (waiting for build backend support)
- [dev] Test Python 3.11 with Django 4.2
- [dev] Add Django 4.2 to package classifiers
- [dev] Fix GitHub Action for publishing to PyPI
- Django 4.2 support
- [dev] Switch to Python 3.11 release in CI
- [dev] Unify and simplify tox config with tox-py
- [dev]
pre-commit autoupdate && pre-commit run --all-files
- [dev] Run
pyupgrade
with Python 3.7 as a base - [dev] PEP 621: Migrate from setup.py and setup.cfg to pyproject.toml
- [dev] Convert
format
and some string interpolations tofstring
- Fixed a bug with
seq
being passed a tz-aware start value PR #353 - Create m2m when using
_bulk_create=True
PR #354 - [dev] Use official postgis docker image in CI PR #355
- Improve
Baker.get_fields()
to subtract lists instead of extra set cast PR #352
- Remove warning for future Django deprecation PR #339
- Fixed a bug with overwritten
_save_kwargs
and other custom arguments PR #330
- Python 3.11 support PR #327
- Django 4.1 support PR #327
- Added documentation for callables, iterables, sequences PR #309
- [dev] Replace changelog reminder action with a custom solution that can ignore Dependabot PRs PR #328
- Extend type hints in
model_bakery.recipe
module, makeRecipe
class generic PR #292 - Explicitly add _fill_optional parameters to baker.make and baker.prepare to aid IDE autocomplete function. PR #264
- Fixed errors with reverse M2M relationships PR #299
- Fixed errors with reverse M2O relationships PR #300
- Improve exception message for unknown field types PR #301
- Fixed random generation of ContentType values when there is no database access #290
- Added postgis version to test settings
- Add support for Python 3.10 PR #244
- Support for Django 4.0 PR #236
- Validate
increment_by
parameter ofseq
helper whenvalue
is an instance ofdatetime
PR #247 - Fix a simple typo in
bulk_create
disclaimer in docs PR #245 - Allow relation
_id
fields to use sequences PR #253 - Fix bulk_create not working with multi-database setup PR #252
- Conditionally support NullBooleanField, it's under deprecation and will be removed in Django 4.0 PR #250
- Fix Django max version pin in requirements file PR #251
- Improve type hinting to return the correct type depending on
_quantity
usage PR #261
- Drop official Django 3.1 support. Django 2.2 is still supported, and 3.1 will likely keep working, but it’s not tested PR #236
_bulk_create
flag is not populating related objects as well PR #206- Add support for iterators on GFK fields when using _quantity param PR #207
- Add support for iterators on many-to-many fields PR#237
- Fix typos in Recipes documentation page PR #212
- Add
venv
to ignored folders offlake8
andpydocstyle
PR#214 - Run
flake8
after code modifications when linting PR#214 - Add typing for
baker.make
andbaker.prepare
PR#213
- Fixed a bug (introduced in 1.2.1) that was breaking imports of recipes from non-installed-app modules PR #201
- Dependencies updates
- [dev] Add explanations to imports in
generators.py
to match with current supported Django versions PR #179
- Fix
requirements.txt
to cover Django 3.2 (everything from 2.2 till 4.0) PR #182
- Add Django 3.2 LTS support PR #176
- Add new
_bulk_create
parameter tomake
for using Django managerbulk_create
with_quantity
PR #134 - Add the functionality to import Django models using the
app_name.ModelName
convention inimport_from_str
PR #140 - Add the functionality to import recipes using
app_name.recipe_name
PR #140 - Add new
one_to_one
parameter toforeign_key
to allow usage of_quantity
for recipes based on models with OneToOne fields PR #169 - [docs] Improved documentation on Recipe's import string PR #175
- [dev] Add a unit test for
utils.seq
PR #143 - [dev] Run CI against
main
Django branch to cover possible upcoming changes/deprecations PR #159 - [dev] Add GH Action for package releasing PR #168
- Fixed a bug (introduced in 1.2.1) that was breaking creation of model instances with related model fields PR #164
- Type hinting fixed for Recipe "_model" parameter PR #124
- Dependencies updates from dependabot PRs #170 - #171 - #172 - #173 - #174
- [dev] Modify
setup.py
to not import the whole module for package data, but get it from__about__.py
PR #142 - [dev] Add Dependabot config file PR #146
- [dev] Update Dependabot config file to support GH Actions and auto-rebase PR #160
model_bakery.timezone.now
fallback (usedjango.utils.timezone.now
instead) PR #141model_bakery.timezone.smart_datetime
function (directly usemodel_bakery.timezone.tz_aware
instead) PR #147- Remove all signs of Django 1.11 (as we dropped it in 1.2.1) PR #157
- Drop unsupported Django 3.0 from CI (https://www.djangoproject.com/download/#unsupported-versions) PR #176
- Add ability to pass
str
values toforeign_key
for recipes from other modules PR #120 - Add new parameter
_using
to support multi database Django applications PR #126 - [dev] Add instructions and script for running
postgres
andpostgis
tests. PR #118
- [dev] Drop Python 3.5 support as it is retired (https://www.python.org/downloads/release/python-3510/) PR #119
- [dev] Remove support for Django<2.2 (more about Django supported versions) PR #126
- Support to django 3.1
JSONField
PR #85 and PR #106 - Added type annotations PR #100
- Support for Python 3.9 PR #113
- [dev] Changelog reminder (GitHub action)
- Add pytest example
- Support for
prefix
inseq
values (PR #111 fixes Issue #93) - [dev] CI switched to GitHub Actions
- [dev] Freeze dev requirements
- [dev] Add Django 3.1 to test matrix PR #103 and PR #112
- [dev] pre-commit to use local packages (so versions will match)
- [dev] consistent use of pydocstyle
- [dev] Updates to MANIFEST.in
- [dev] Correct field in recipe docs
- [dev] Adjust imports for Django 3.1 compatibility PR #112
- Support to Postgres fields:
DecimalRangeField
,FloatRangeField
,IntegerRangeField
,BigIntegerRangeField
,DateRangeField
,DateTimeRangeField
PR #80
- Add isort and fix imports PR #77
- Enable
seq
to be imported frombaker
PR #76 - Fix PostGIS model registration PR #67
- Django 3.0 and Python 3.8 to CI PR #48
- Improve code comments PR #31
- Switch to tox-travis PR #43
- Add black job PR #42
- README.md instead of rst PR #44
- New
start
argument inbaker.seq
PR #56 - Fixes bug when registering custom fields generator via
settings.py
PR #58 - The different IntegerField types now will generate values on their min/max range PR #59
- Improvements on the migrations script
- Python script to help developers on migrating from Model Mommy to Model Bakery
- Rename model_mommy code to model_bakery