# Change Log

Date format: yyyy/mm/dd

## Version 4.0.1 - 2023/09/15

> - <http://pypi.python.org/pypi/django-dynamic-fixture/4.0.1>

> - Reuse lessons in Proxy models

> - https://github.com/paulocheque/django-dynamic-fixture/pull/161

## Version 4.0.0 - 2023/08/26

> - <http://pypi.python.org/pypi/django-dynamic-fixture/4.0.0>

> - Removed compatibilty of Python 2

> - Removed compatibilty of Django 3 or lower

> - Removed Nose plugins

> - Removed Coveralls integration

## Version 3.1.3 - 2023/08/18

> - <http://pypi.python.org/pypi/django-dynamic-fixture/3.1.3>

> - Removed deprecation warnings: PR #150

> - Fixed doc typos: PR #151

> - Allow Mask objects as lessons for unique fields: PR #153

## Version 3.1.2 - 2021/10/01

> - <http://pypi.python.org/pypi/django-dynamic-fixture/3.1.2>

> - Correct type for TimeField: PR #139

> - Catch Django 3.2 TypeError instantiating abstracts: PR #142

> - ci: update tox.ini and travis.yml to test Django3.1/3.2: PR #143

## Version 3.1.1 - 2020/11/17

> - <http://pypi.python.org/pypi/django-dynamic-fixture/3.1.1>

> - Fixed importing FieldDoesNotExist exception class for Django==3.1: PR #134

## Version 3.1.0 - 2020/03/29

> - <http://pypi.python.org/pypi/django-dynamic-fixture/3.1.0>

> - Compatibility check report improvements: PR #131

> - DDF now accepts to override a DDF lesson: PR #130

> - New feature: DDF Mask: `M`: PR #129

> - Option to configure DDF via Environment variables

## Version 3.0.3 - 2020/03/01

> - <http://pypi.python.org/pypi/django-dynamic-fixture/3.0.3>

> - Setting `DDF_NUMBER_OF_LAPS` was removed in favor of the new `DDF_FK_MIN_DEPTH`

> - Parameter `number_of_laps` was removed in favor of new `fk_min_depth`

> - Important bugfix for the FK field management: Issue #120

> - Give priority to default values instead of null values: Issue #121

> - Fixed lookup fields that was breaking JSONFields: Issue #122

## Version 3.0.2 - 2020/01/10

> - <http://pypi.python.org/pypi/django-dynamic-fixture/3.0.2>

> - Changed `VERSION` to `__version__`: `from ddf import __version`

> - Changed `lesson` to `ddf_lesson`: `G(Model, ddf_lesson='...')`

## Version 3.0.1 - 2020/01/07

> - <http://pypi.python.org/pypi/django-dynamic-fixture/3.0.1>

> - Fixed importing `from ddf import ddf_check_models`

> - Added a CSV report for the ddf_check_models

> - Added the VERSION property in ddf: `from ddf import VERSION`

## Version 3.0.0 - 2020/01/05

> - <http://pypi.python.org/pypi/django-dynamic-fixture/3.0.0>

> - New `teach` method that replaced the old `shelve=True`.

> - Support to `app_label.ModelName` strings instead of the model class.

> - New `ddf` shortcut: `from ddf import G, N, C, P, teach`.

> - Support for Django 3.0.0.

> - New `ddf_check_models` method to print a compatibility report.

> - Added Python 3 Type Hints.

> - Added native support for the `Postgres.JSONField`.

> - Added native support for Django-Polymorphic models.

> - Bugfix for the `data_fixture` parameter to accept string alias.

> - Another small bugfixes with `choices` parameter.

> - Many internal refactorings.

> - Travis/Tests integration fixed.

> - Documentation organised, updated and simplified.

> - Changed the default value of the `persist_dependencies` in `N` from True to False.

> - DDF_USE_LIBRARY settings removed. Now, it is always activated by default.

> - DDF_VALIDATE_ARGS settings removed. Now, it is always activated by default.

> - DDF_FILL_NULLABLE_FIELDS default changed from True to False

> - DDF_NUMBER_OF_LAPS default changed from 1 to 0

> - Bugfix for named primary keys.

## Version 2.0.0 - 2017/12/08

> - <http://pypi.python.org/pypi/django-dynamic-fixture/2.0.0>

> - DDF_IGNORE_FIELDS globally for all new instances

> - Bugfix for auto generated _ptr fields.

> - Support for Django 2.0.0.

## Version 1.9.5 - 2017/05/09

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.9.5>

> - Bugfix: avoid GDALException on Django 1.11

## Version 1.9.4 - 2017/04/17

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.9.4>

> - Added support for django.contrib.postgres.fields.ArrayField field

> - Fixed GeoDjango Point instantiation.

## Version 1.9.3 - 2017/03/08

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.9.3>

> - Improve compatibility for the DDF internal tests

## Version 1.9.2 - 2017/03/08

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.9.2>

> - Django 2.0 compatibility

> - New: Support for wildcards ? and * in the ignore fields

> - Bugfix: Fixed DDF_TEST_GEODJANGO test issues

## Version 1.9.1 - 2016/12/21

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.9.1>

> - Bugfix: Django version parser

> - Bugfix: NameError on invalid variable name

## Version 1.9.0 - 2016/05/23

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.9.0>

> - [New] Django 1.9 support

> - [Bugfix] Fixed issue on ForeignKey field with default id

> - [Bugfix] Fixed issue with SimpleUploadedFile

## Version 1.8.4 - 2015/05/26

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.8.4>

> - [New] UUIDField support

> - [New] GeoDjango fields support (GeometryField, PointField, LineStringField, PolygonField, MultiPointField, MultiLineStringField, MultiPolygonField, GeometryCollectionField)

> - [Update] Better error messages

> - [Bugfix] BinaryField fixture fix

> - [Update] Optimizations

## Version 1.8.3 - 2015/05

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.8.3>

> - [Update] No more deprecated methods

## Version 1.8.2 - 2015/05

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.8.2>

> - [New] Support for Django 1.8

## Version 1.8.1 - 2014/12

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.8.1>

> - [Update] Avoid conflicts with “instance” and “field” model field names.

## Version 1.8.0 - 2014/09

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.8.0>

> - [New] DDF_FIELD_FIXTURES global settings. You can include support of other fields here.

> - [New] Support for BinaryField

> - [Update] Django 1.7, Python 3.4 and Pypy official suppport (fixed some tests)

> - [New] ReadTheDocs full documentation

> - [Update] Fixed some print calls for python 3

> - [Update] Nose plugin disable as default. Recommended behavior of nose plugins.

> - [Update] ignore_fields parameter does not consider fields explicitly defined by the developer.

> - [Update] Travis env using Tox

## Version 1.7.0 - 2014/03/26

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.7.0>

## Version 1.6.4 - 2012/12/30

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.6.4>

> - [Bugfix] auto_now and auto_now_add must not be disabled forever (thanks for reporting)

> - [New] Added global_sequential data fixture (Pull request, thanks)

## Version 1.6.3 - 2012/04/10

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.6.3>

> - [New] Pre save and post save special signals

## Version 1.6.2 - 2012/04/09

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.6.2>

> - [New] Debug Mode and option (global/local) to enable/disable debug mode

## Version 1.6.1 - 2012/04/07

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.6.1>

> - [New] New alias for F: field1__field2=value instead of field1=F(field2=value)

> - [New] Named shelves inherit from default shelve

## Version 1.6.0 - 2012/03/31

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.6.0>

> - [New] Copier: option to copy a generated value for a field to another one. Useful for denormalizated fields.

> - [New] Shelve/Library: option to store a default configuration of a specific model. Useful to avoid replicated code of fixtures. Global option: DDF_USE_LIBRARY.

> - [New] Named Shelve: option to store multiple configurations for a model in the library.

> - [New] Nose plugin for global set up.

> - [New] P function now accept a queryset.

## Version 1.5.1 - 2012/03/26

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.5.0>

> - [New] global option: DDF_VALIDATE_ARGS that enable or disable field names.

> - [Bugfix] F feature stop working.

## Version 1.5.0 - 2012/03/25

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.5.0>

> - [New] global settings: DDF_DEFAULT_DATA_FIXTURE, DDF_FILL_NULLABLE_FIELDS, DDF_IGNORE_FIELDS, DDF_NUMBER_OF_LAPS, DDF_VALIDATE_MODELS

> - [New] new data fixture that generates random data

> - [New] new data fixture that use sequential numbers only for fields that have unique=True

> - [New] P function now accept a list of model instances

> - [New] Option to call model_instance.full_clean() validation method before saving the object (DDF_VALIDATE_MODELS).

> - [New] Validate field names. If a invalid field name is passed as argument, it will raise an InvalidConfigurationError exception.

> - [Bugfix] DateField options ‘auto_add_now’ and ‘auto_add’ are disabled if a custom value is used.

## Version 1.4.3 - 2012/02/23

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.4.3>

> - [Bugfix] Bugfix in ForeignKeys with default values

## Version 1.4.2 - 2011/11/07

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.4.2>

> - [Bugfix] Bugfix in FileSystemDjangoTestCase

## Version 1.4.1 - 2011/11/07

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.4.1>

> - [New] Now you can set a custom File to a FileField and the file will be saved in the file storage system.

> - FileSystemDjangoTestCase:

> - [New] create_django_file_using_file create a django.File using the content of your file

> - [New] create_django_file_with_temp_file now accepts a content attribute that will be saved in the generated file

> - [Bugfix] now create_django_file_with_temp_file close the generated file

## Version 1.4.0 - 2011/10/29

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.4.0>

> - [New] Nose plugin to count queries on each test

> - [New] Command line to count queries on the save (insert and update) of each model

> - [Update] Field with choice and default must use the default value, not the first choice value

> - [Update] Validation if the class is a models.Model instance

> - [Update] Showing all stack trace, when an exception occurs

> - Decorators:

> - [Bugfix] default values of database engines were not used correctly

> - FileSystemDjangoTestCase:

> - [Testfix] Fixing tests

## Version 1.3.1 - 2011/10/03

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.3.1>

> - [Bugfix] Bugfixes in FileSystemDjangoTestCase

## Version 1.3.0 - 2011/10/03

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.3.0>

> - [New] File System Django Test Case

> - [New] Decorators skip_for_database and only_for_database

> - [Bugfix] Inheritance problems, before this version the DDF filled fields with the attribute parent_link

## Version 1.2.3 - 2011/06/27

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.2.3>

> - [Bugfix] string truncation to max_length

## Version 1.2.2 - 2011/05/05

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.2.2>

> - [Update] Improvements in exception messages

## Version 1.2.1 - 2011/03/11

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.2.1>

> - [Bugfix] Propagate ignored fields to self references

> - [Refact] Refactoring

## Version 1.2 - 2011/03/04

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.2>

> - [New] ignore_fields

> - [New] now it is possible to set the ID

## Version 1.1

> - <http://pypi.python.org/pypi/django-dynamic-fixture/1.0> (1.0 has the 1.1 package)

> - [Bugfix] Bug fixes for 1.0

## Version 1.0

> - Initial version

> - Ready to use in big projects