More changelog tweaks [ci skip]

The main change is that we're now using double backticks (``), which are the
correct way to format code in an RST file.
This commit is contained in:
Stefan Wojcik 2019-07-03 11:12:25 +02:00
parent 8fdf664968
commit 058203a0ec

View File

@ -6,211 +6,211 @@ Changelog
Development Development
=========== ===========
- (Fill this out as you fix issues and develop your features). - (Fill this out as you fix issues and develop your features).
- BREAKING CHANGE: `class_check` and `read_preference` keyword arguments are no longer available when filtering a `QuerySet`. #2112 - BREAKING CHANGE: ``class_check`` and ``read_preference`` keyword arguments are no longer available when filtering a ``QuerySet``. #2112
- Instead of `Doc.objects(foo=bar, read_preference=...)` use `Doc.objects(foo=bar).read_preference(...)`. - Instead of ``Doc.objects(foo=bar, read_preference=...)`` use ``Doc.objects(foo=bar).read_preference(...)``.
- Instead of `Doc.objects(foo=bar, class_check=False)` use `Doc.objects(foo=bar).clear_cls_query(...)`. - Instead of ``Doc.objects(foo=bar, class_check=False)`` use ``Doc.objects(foo=bar).clear_cls_query(...)``.
- This change also renames the private `QuerySet._initial_query` attribute to `_cls_query`. - This change also renames the private ``QuerySet._initial_query`` attribute to ``_cls_query``.
- BREAKING CHANGE: Removed the deprecated `format` param from `QuerySet.explain`. #2113 - BREAKING CHANGE: Removed the deprecated ``format`` param from ``QuerySet.explain``. #2113
- BREAKING CHANGE: Renamed `MongoEngineConnectionError` to `ConnectionFailure`. #2111 - BREAKING CHANGE: Renamed ``MongoEngineConnectionError`` to ``ConnectionFailure``. #2111
- If you catch/use `MongoEngineConnectionError` in your code, you'll have to rename it. - If you catch/use ``MongoEngineConnectionError`` in your code, you'll have to rename it.
- BREAKING CHANGE: Positional arguments when instantiating a document are no longer supported. #2103 - BREAKING CHANGE: Positional arguments when instantiating a document are no longer supported. #2103
- From now on keyword arguments (e.g. `Doc(field_name=value)`) are required. - From now on keyword arguments (e.g. ``Doc(field_name=value)``) are required.
- The codebase is now formatted using `black`. #2109 - The codebase is now formatted using ``black``. #2109
- `ListField` now accepts an optional `max_length` parameter. #2110 - ``ListField`` now accepts an optional ``max_length`` parameter. #2110
Changes in 0.18.2 Changes in 0.18.2
================= =================
- Replace deprecated PyMongo v2.x methods with their v3.x equivalents in the `SequenceField`. #2097 - Replace deprecated PyMongo v2.x methods with their v3.x equivalents in the ``SequenceField``. #2097
- Various code clarity and documentation improvements. - Various code clarity and documentation improvements.
Changes in 0.18.1 Changes in 0.18.1
================= =================
- Fix a bug introduced in 0.18.0 which was causing `.save()` to update all the fields instead of updating only the modified fields. This bug only occurred when using a custom PK. #2082 - Fix a bug introduced in 0.18.0 which was causing ``Document.save`` to update all the fields instead of updating only the modified fields. This bug only occurred when using a custom PK. #2082
- Add Python 3.7 to Travis CI. #2058 - Add Python 3.7 to Travis CI. #2058
Changes in 0.18.0 Changes in 0.18.0
================= =================
- Drop support for EOL'd MongoDB v2.6, v3.0, and v3.2. - Drop support for EOL'd MongoDB v2.6, v3.0, and v3.2.
- MongoEngine now requires PyMongo >= v3.4. Travis CI now tests against MongoDB v3.4 v3.6 and PyMongo v3.4 v3.6. #2017 #2066 - MongoEngine now requires PyMongo >= v3.4. Travis CI now tests against MongoDB v3.4 v3.6 and PyMongo v3.4 v3.6. #2017 #2066
- Improve performance by avoiding a call to `to_mongo` in `Document.save()`. #2049 - Improve performance by avoiding a call to ``to_mongo`` in ``Document.save``. #2049
- Connection/disconnection improvements: - Connection/disconnection improvements:
- Expose `mongoengine.connection.disconnect` and `mongoengine.connection.disconnect_all`. - Expose ``mongoengine.connection.disconnect`` and ``mongoengine.connection.disconnect_all``.
- Fix disconnecting. #566 #1599 #605 #607 #1213 #565 - Fix disconnecting. #566 #1599 #605 #607 #1213 #565
- Improve documentation of `connect`/`disconnect`. - Improve documentation of ``connect``/``disconnect``.
- Fix issue when using multiple connections to the same mongo with different credentials. #2047 - Fix issue when using multiple connections to the same mongo with different credentials. #2047
- `connect` fails immediately when db name contains invalid characters. #2031 #1718 - ``connect`` fails immediately when db name contains invalid characters. #2031 #1718
- Fix the default write concern of `Document.save` that was overwriting the connection write concern. #568 - Fix the default write concern of ``Document.save`` that was overwriting the connection write concern. #568
- Fix querying on `List(EmbeddedDocument)` subclasses fields. #1961 #1492 - Fix querying on ``List(EmbeddedDocument)`` subclasses fields. #1961 #1492
- Fix querying on `(Generic)EmbeddedDocument` subclasses fields. #475 - Fix querying on ``(Generic)EmbeddedDocument`` subclasses fields. #475
- Fix `QuerySet.aggregate` so that it takes limit and skip value into account. #2029 - Fix ``QuerySet.aggregate`` so that it takes limit and skip value into account. #2029
- Generate unique indices for `SortedListField` and `EmbeddedDocumentListFields`. #2020 - Generate unique indices for ``SortedListField`` and ``EmbeddedDocumentListFields``. #2020
- BREAKING CHANGE: Changed the behavior of a custom field validator (i.e `validation` parameter of a `Field`). It is now expected to raise a `ValidationError` instead of returning `True`/`False`. #2050 - BREAKING CHANGE: Changed the behavior of a custom field validator (i.e ``validation`` parameter of a ``Field``). It is now expected to raise a ``ValidationError`` instead of returning ``True``/``False``. #2050
- BREAKING CHANGES (associated with connection/disconnection fixes): - BREAKING CHANGES (associated with connection/disconnection fixes):
- Calling `connect` 2 times with the same alias and different parameter will raise an error (should call `disconnect` first). - Calling ``connect`` 2 times with the same alias and different parameter will raise an error (should call ``disconnect`` first).
- `disconnect` now clears `mongoengine.connection._connection_settings`. - ``disconnect`` now clears ``mongoengine.connection._connection_settings``.
- `disconnect` now clears the cached attribute `Document._collection`. - ``disconnect`` now clears the cached attribute ``Document._collection``.
- BREAKING CHANGE: `EmbeddedDocument.save` & `.reload` no longer exist. #1552 - BREAKING CHANGE: ``EmbeddedDocument.save`` & ``.reload`` no longer exist. #1552
Changes in 0.17.0 Changes in 0.17.0
================= =================
- POTENTIAL BREAKING CHANGE: All result fields are now passed, including internal fields (`_cls`, `_id`) when using `QuerySet.as_pymongo`. #1976 - POTENTIAL BREAKING CHANGE: All result fields are now passed, including internal fields (``_cls``, ``_id``) when using ``QuerySet.as_pymongo``. #1976
- Document a BREAKING CHANGE introduced in 0.15.3 and not reported at that time. #1995 - Document a BREAKING CHANGE introduced in 0.15.3 and not reported at that time. #1995
- DEPRECATION: `EmbeddedDocument.save` & `.reload` are marked as deprecated and will be removed in a next version of MongoEngine. #1552 - DEPRECATION: ``EmbeddedDocument.save`` & ``.reload`` are marked as deprecated and will be removed in a next version of MongoEngine. #1552
- Fix `.only()` working improperly after using `.count()` of the same instance of a `QuerySet`. - Fix ``QuerySet.only`` working improperly after using ``QuerySet.count`` of the same instance of a ``QuerySet``.
- Fix `batch_size` that was not copied when cloning a `QuerySet` object. #2011 - Fix ``batch_size`` that was not copied when cloning a ``QuerySet`` object. #2011
- Fix `InvalidStringData` error when using `modify` on a `BinaryField`. #1127 - Fix ``InvalidStringData`` error when using ``modify`` on a ``BinaryField``. #1127
- Fix test suite and CI to support MongoDB v3.4. #1445 - Fix test suite and CI to support MongoDB v3.4. #1445
- Fix reference fields querying the database on each access if value contains orphan DBRefs. - Fix reference fields querying the database on each access if value contains orphan DBRefs.
================= =================
Changes in 0.16.3 Changes in 0.16.3
================= =================
- Fix `$push` with the `$position` operator not working with lists in embedded documents. #1965 - Fix ``$push`` with the ``$position`` operator not working with lists in embedded documents. #1965
================= =================
Changes in 0.16.2 Changes in 0.16.2
================= =================
- Fix `.save()` that fails when called with `write_concern=None` (regression of 0.16.1). #1958 - Fix ``Document.save`` that fails when called with ``write_concern=None`` (regression of 0.16.1). #1958
================= =================
Changes in 0.16.1 Changes in 0.16.1
================= =================
- Fix `_cls` that is not set properly in the `Document` constructor (regression). #1950 - Fix ``_cls`` that is not set properly in the ``Document`` constructor (regression). #1950
- Fix a bug in the `_delta` method - update of a `ListField` depends on an unrelated dynamic field update. #1733 - Fix a bug in the ``_delta`` method - update of a ``ListField`` depends on an unrelated dynamic field update. #1733
- Remove PyMongo's deprecated `save()` method and use `insert_one()` instead. #1899 - Remove PyMongo's deprecated ``Collection.save`` method and use ``Collection.insert_one`` instead. #1899
================= =================
Changes in 0.16.0 Changes in 0.16.0
================= =================
- POTENTIAL BREAKING CHANGES: - POTENTIAL BREAKING CHANGES:
- `EmbeddedDocumentField` will no longer accept references to Document classes in its constructor. #1661 - ``EmbeddedDocumentField`` will no longer accept references to Document classes in its constructor. #1661
- Get rid of the `basecls` parameter from the `DictField` constructor (dead code). #1876 - Get rid of the ``basecls`` parameter from the ``DictField`` constructor (dead code). #1876
- Default value of the `ComplexDateTime` field is now `None` (and no longer the current datetime). #1368 - Default value of the ``ComplexDateTime`` field is now ``None`` (and no longer the current datetime). #1368
- Fix an unhashable `TypeError` when referencing a `Document` with a compound key in an `EmbeddedDocument`. #1685 - Fix an unhashable ``TypeError`` when referencing a ``Document`` with a compound key in an ``EmbeddedDocument``. #1685
- Fix a bug where an `EmbeddedDocument` with the same id as its parent would not be tracked for changes. #1768 - Fix a bug where an ``EmbeddedDocument`` with the same id as its parent would not be tracked for changes. #1768
- Fix the fact that a bulk `QuerySet.insert` was not setting primary keys of inserted document instances. #1919 - Fix the fact that a bulk ``QuerySet.insert`` was not setting primary keys of inserted document instances. #1919
- Fix a bug when referencing an abstract class in a `ReferenceField`. #1920 - Fix a bug when referencing an abstract class in a ``ReferenceField``. #1920
- Allow modifications to the document made in `pre_save_post_validation` to be taken into account. #1202 - Allow modifications to the document made in ``pre_save_post_validation`` to be taken into account. #1202
- Replace MongoDB v2.4 tests in Travis CI with MongoDB v3.2. #1903 - Replace MongoDB v2.4 tests in Travis CI with MongoDB v3.2. #1903
- Fix side effects of using `QuerySet.no_dereference` on other documents. #1677 - Fix side effects of using ``QuerySet.no_dereference`` on other documents. #1677
- Fix `TypeError` when using lazy Django translation objects as translated choices. #1879 - Fix ``TypeError`` when using lazy Django translation objects as translated choices. #1879
- Improve Python 2-3 codebase compatibility. #1889 - Improve Python 2-3 codebase compatibility. #1889
- Fix support for changing the default value of the `ComplexDateTime` field. #1368 - Fix support for changing the default value of the ``ComplexDateTime`` field. #1368
- Improve error message in case an `EmbeddedDocumentListField` receives an `EmbeddedDocument` instance instead of a list. #1877 - Improve error message in case an ``EmbeddedDocumentListField`` receives an ``EmbeddedDocument`` instance instead of a list. #1877
- Fix the `inc` and `dec` operators for the `DecimalField`. #1517 #1320 - Fix the ``inc`` and ``dec`` operators for the ``DecimalField``. #1517 #1320
- Ignore `killcursors` queries in `query_counter` context manager. #1869 - Ignore ``killcursors`` queries in ``query_counter`` context manager. #1869
- Fix the fact that `query_counter` was modifying the initial profiling level in case it was != 0. #1870 - Fix the fact that ``query_counter`` was modifying the initial profiling level in case it was != 0. #1870
- Repair the `no_sub_classes` context manager + fix the fact that it was swallowing exceptions. #1865 - Repair the ``no_sub_classes`` context manager + fix the fact that it was swallowing exceptions. #1865
- Fix index creation error that was swallowed by `hasattr` under Python 2. #1688 - Fix index creation error that was swallowed by ``hasattr`` under Python 2. #1688
- `QuerySet.limit` function behaviour: Passing 0 as parameter will return all the documents in the cursor. #1611 - ``QuerySet.limit`` function behaviour: Passing 0 as parameter will return all the documents in the cursor. #1611
- Bulk insert updates the IDs of the input documents instances. #1919 - Bulk insert updates the IDs of the input documents instances. #1919
- Fix a harmless bug related to `GenericReferenceField` where modifications in the generic-referenced document were tracked in the parent. #1934 - Fix a harmless bug related to ``GenericReferenceField`` where modifications in the generic-referenced document were tracked in the parent. #1934
- Improve validation of the `BinaryField`. #273 - Improve validation of the ``BinaryField``. #273
- Implement lazy regex compiling in Field classes to improve `import mongoengine` performance. #1806 - Implement lazy regex compiling in Field classes to improve ``import mongoengine`` performance. #1806
- Update `GridFSProxy.__str__` so that it would always print both the filename and grid_id. #710 - Update ``GridFSProxy.__str__`` so that it would always print both the filename and grid_id. #710
- Add `__repr__` to `Q` and `QCombination` classes. #1843 - Add ``__repr__`` to ``Q`` and ``QCombination`` classes. #1843
- Fix bug in the `BaseList.__iter__` operator (was occuring when modifying a BaseList while iterating over it). #1676 - Fix bug in the ``BaseList.__iter__`` operator (was occuring when modifying a BaseList while iterating over it). #1676
- Add a `DateField`. #513 - Add a ``DateField``. #513
- Various improvements to the documentation. - Various improvements to the documentation.
- Various code quality improvements. - Various code quality improvements.
Changes in 0.15.3 Changes in 0.15.3
================= =================
- `Queryset.update/update_one` methods now return an `UpdateResult` when `full_result=True` is provided and no longer a dict. #1491 - ``Queryset.update/update_one`` methods now return an ``UpdateResult`` when ``full_result=True`` is provided and no longer a dict. #1491
- Improve `LazyReferenceField` and `GenericLazyReferenceField` with nested fields. #1704 - Improve ``LazyReferenceField`` and ``GenericLazyReferenceField`` with nested fields. #1704
- Fix the subfield resolve error in `generic_emdedded_document` query. #1651 #1652 - Fix the subfield resolve error in ``generic_emdedded_document`` query. #1651 #1652
- Use each modifier only with `$position`. #1673 #1675 - Use each modifier only with ``$position``. #1673 #1675
- Fix validation errors in the `GenericEmbeddedDocumentField`. #1067 - Fix validation errors in the ``GenericEmbeddedDocumentField``. #1067
- Update cached fields when a `fields` argument is given. #1712 - Update cached fields when a ``fields`` argument is given. #1712
- Add a `db` parameter to `register_connection` for compatibility with `connect`. - Add a ``db`` parameter to ``register_connection`` for compatibility with ``connect``.
- Use PyMongo v3.x's `insert_one` and `insert_many` in `Document.insert`. #1491 - Use PyMongo v3.x's ``insert_one`` and ``insert_many`` in ``Document.insert``. #1491
- Use PyMongo v3.x's `update_one` and `update_many` in `Document.update` and `QuerySet.update`. #1491 - Use PyMongo v3.x's ``update_one`` and ``update_many`` in ``Document.update`` and ``QuerySet.update``. #1491
- Fix how `reload(fields)` affects changed fields. #1371 - Fix how ``reload(fields)`` affects changed fields. #1371
- Fix a bug where the read-only access to the database fails when trying to create indexes. #1338 - Fix a bug where the read-only access to the database fails when trying to create indexes. #1338
Changes in 0.15.0 Changes in 0.15.0
================= =================
- Add `LazyReferenceField` and `GenericLazyReferenceField`. #1230 - Add ``LazyReferenceField`` and ``GenericLazyReferenceField``. #1230
Changes in 0.14.1 Changes in 0.14.1
================= =================
- Remove `SemiStrictDict` and start using a regular dict for `BaseDocument._data`. #1630 - Remove ``SemiStrictDict`` and start using a regular dict for ``BaseDocument._data``. #1630
- Add support for the `$position` param in the `$push` operator. #1566 - Add support for the ``$position`` param in the ``$push`` operator. #1566
- Fix `DateTimeField` interpreting an empty string as today. #1533 - Fix ``DateTimeField`` interpreting an empty string as today. #1533
- Add a missing `__ne__` method to the `GridFSProxy` class. #1632 - Add a missing ``__ne__`` method to the ``GridFSProxy`` class. #1632
- Fix `BaseQuerySet._fields_to_db_fields`. #1553 - Fix ``BaseQuerySet._fields_to_db_fields``. #1553
Changes in 0.14.0 Changes in 0.14.0
================= =================
- BREAKING CHANGE: Remove the `coerce_types` param from `QuerySet.as_pymongo`. #1549 - BREAKING CHANGE: Remove the ``coerce_types`` param from ``QuerySet.as_pymongo``. #1549
- POTENTIAL BREAKING CHANGE: Make `EmbeddedDocument` not hashable by default. #1528 - POTENTIAL BREAKING CHANGE: Make ``EmbeddedDocument`` not hashable by default. #1528
- Improve code quality. #1531, #1540, #1541, #1547 - Improve code quality. #1531, #1540, #1541, #1547
Changes in 0.13.0 Changes in 0.13.0
================= =================
- POTENTIAL BREAKING CHANGE: Added Unicode support to the `EmailField`, see docs/upgrade.rst for details. - POTENTIAL BREAKING CHANGE: Added Unicode support to the ``EmailField``, see docs/upgrade.rst for details.
Changes in 0.12.0 Changes in 0.12.0
================= =================
- POTENTIAL BREAKING CHANGE: Fix `limit`/`skip`/`hint`/`batch_size` chaining. #1476 - POTENTIAL BREAKING CHANGE: Fix ``limit``/``skip``/``hint``/``batch_size`` chaining. #1476
- POTENTIAL BREAKING CHANGE: Change a public `QuerySet.clone_into` method to a private `QuerySet._clone_into`. #1476 - POTENTIAL BREAKING CHANGE: Change a public ``QuerySet.clone_into`` method to a private ``QuerySet._clone_into``. #1476
- Fix the way `Document.objects.create` works with duplicate IDs. #1485 - Fix the way ``Document.objects.create`` works with duplicate IDs. #1485
- Fix connecting to a replica set with PyMongo 2.x. #1436 - Fix connecting to a replica set with PyMongo 2.x. #1436
- Fix using sets in field choices. #1481 - Fix using sets in field choices. #1481
- Fix deleting items from a `ListField`. #1318 - Fix deleting items from a ``ListField``. #1318
- Fix an obscure error message when filtering by `field__in=non_iterable`. #1237 - Fix an obscure error message when filtering by ``field__in=non_iterable``. #1237
- Fix behavior of a `dec` update operator. #1450 - Fix behavior of a ``dec`` update operator. #1450
- Add a `rename` update operator. #1454 - Add a ``rename`` update operator. #1454
- Add validation for the `db_field` parameter. #1448 - Add validation for the ``db_field`` parameter. #1448
- Fix the error message displayed when querying an `EmbeddedDocumentField` by an invalid value. #1440 - Fix the error message displayed when querying an ``EmbeddedDocumentField`` by an invalid value. #1440
- Fix the error message displayed when validating Unicode URLs. #1486 - Fix the error message displayed when validating Unicode URLs. #1486
- Raise an error when trying to save an abstract document. #1449 - Raise an error when trying to save an abstract document. #1449
Changes in 0.11.0 Changes in 0.11.0
================= =================
- BREAKING CHANGE: Rename `ConnectionError` to `MongoEngineConnectionError` since the former is a built-in exception name in Python v3.x. #1428 - BREAKING CHANGE: Rename ``ConnectionError`` to ``MongoEngineConnectionError`` since the former is a built-in exception name in Python v3.x. #1428
- BREAKING CHANGE: Drop Python v2.6 support. #1428 - BREAKING CHANGE: Drop Python v2.6 support. #1428
- BREAKING CHANGE: `from mongoengine.base import ErrorClass` won't work anymore for any error from `mongoengine.errors` (e.g. `ValidationError`). Use `from mongoengine.errors import ErrorClass instead`. #1428 - BREAKING CHANGE: ``from mongoengine.base import ErrorClass`` won't work anymore for any error from ``mongoengine.errors`` (e.g. ``ValidationError``). Use ``from mongoengine.errors import ErrorClass instead``. #1428
- BREAKING CHANGE: Accessing a broken reference will raise a `DoesNotExist` error. In the past it used to return `None`. #1334 - BREAKING CHANGE: Accessing a broken reference will raise a ``DoesNotExist`` error. In the past it used to return ``None``. #1334
- Fix absent rounding for the `DecimalField` when `force_string` is set. #1103 - Fix absent rounding for the ``DecimalField`` when ``force_string`` is set. #1103
Changes in 0.10.8 Changes in 0.10.8
================= =================
- Add support for `QuerySet.batch_size`. (#1426) - Add support for ``QuerySet.batch_size``. (#1426)
- Fix a query set iteration within an iteration. #1427 - Fix a query set iteration within an iteration. #1427
- Fix an issue where specifying a MongoDB URI host would override more information than it should. #1421 - Fix an issue where specifying a MongoDB URI host would override more information than it should. #1421
- Add an ability to filter the `GenericReferenceField` by an `ObjectId` and a `DBRef`. #1425 - Add an ability to filter the ``GenericReferenceField`` by an ``ObjectId`` and a ``DBRef``. #1425
- Fix cascading deletes for models with a custom primary key field. #1247 - Fix cascading deletes for models with a custom primary key field. #1247
- Add ability to specify an authentication mechanism (e.g. X.509). #1333 - Add ability to specify an authentication mechanism (e.g. X.509). #1333
- Add support for falsy primary keys (e.g. `doc.pk = 0`). #1354 - Add support for falsy primary keys (e.g. ``doc.pk = 0``). #1354
- Fix `QuerySet.sum/average` for fields w/ an explicit `db_field`. #1417 - Fix ``QuerySet.sum/average`` for fields w/ an explicit ``db_field``. #1417
- Fix filtering by `embedded_doc=None`. #1422 - Fix filtering by ``embedded_doc=None``. #1422
- Add support for `Cursor.comment`. #1420 - Add support for ``Cursor.comment``. #1420
- Fix `doc.get_<field>_display` methods. #1419 - Fix ``doc.get_<field>_display`` methods. #1419
- Fix the `__repr__` method of the `StrictDict` #1424 - Fix the ``__repr__`` method of the ``StrictDict`` #1424
- Add a deprecation warning for Python v2.6. - Add a deprecation warning for Python v2.6.
Changes in 0.10.7 Changes in 0.10.7
================= =================
- Drop Python 3.2 support #1390 - Drop Python 3.2 support #1390
- Fix a bug where a dynamic doc has an index inside a dict field. #1278 - Fix a bug where a dynamic doc has an index inside a dict field. #1278
- Fix: `ListField` minus index assignment does not work. #1128 - Fix: ``ListField`` minus index assignment does not work. #1128
- Fix cascade delete mixing among collections. #1224 - Fix cascade delete mixing among collections. #1224
- Add `signal_kwargs` argument to `Document.save`, `Document.delete` and `BaseQuerySet.insert` to be passed to signals calls. #1206 - Add ``signal_kwargs`` argument to ``Document.save``, ``Document.delete`` and ``BaseQuerySet.insert`` to be passed to signals calls. #1206
- Raise `OperationError` when trying to do a `drop_collection` on document with no collection set. - Raise ``OperationError`` when trying to do a ``drop_collection`` on document with no collection set.
- Fix a bug where a count on `ListField` of `EmbeddedDocumentField` fails. #1187 - Fix a bug where a count on ``ListField`` of ``EmbeddedDocumentField`` fails. #1187
- Fix `LongField` values stored as int32 in Python 3. #1253 - Fix ``LongField`` values stored as int32 in Python 3. #1253
- `MapField` now handles unicode keys correctly. #1267 - ``MapField`` now handles unicode keys correctly. #1267
- `ListField` now handles negative indicies correctly. #1270 - ``ListField`` now handles negative indicies correctly. #1270
- Fix an `AttributeError` when initializing an `EmbeddedDocument` with positional args. #681 - Fix an ``AttributeError`` when initializing an ``EmbeddedDocument`` with positional args. #681
- Fix a `no_cursor_timeout` error with PyMongo v3.x. #1304 - Fix a ``no_cursor_timeout`` error with PyMongo v3.x. #1304
- Replace map-reduce based `QuerySet.sum/average` with aggregation-based implementations. #1336 - Replace map-reduce based ``QuerySet.sum/average`` with aggregation-based implementations. #1336
- Fix support for `__` to escape field names that match operators' names in `update`. #1351 - Fix support for ``__`` to escape field names that match operators' names in ``update``. #1351
- Fix `BaseDocument._mark_as_changed`. #1369 - Fix ``BaseDocument._mark_as_changed``. #1369
- Add support for pickling `QuerySet` instances. #1397 - Add support for pickling ``QuerySet`` instances. #1397
- Fix connecting to a list of hosts. #1389 - Fix connecting to a list of hosts. #1389
- Fix a bug where accessing broken references wouldn't raise a `DoesNotExist` error. #1334 - Fix a bug where accessing broken references wouldn't raise a ``DoesNotExist`` error. #1334
- Fix not being able to specify `use_db_field=False` on `ListField(EmbeddedDocumentField)` instances. #1218 - Fix not being able to specify ``use_db_field=False`` on ``ListField(EmbeddedDocumentField)`` instances. #1218
- Improvements to the dictionary field's docs. #1383 - Improvements to the dictionary field's docs. #1383
Changes in 0.10.6 Changes in 0.10.6
@ -225,12 +225,12 @@ Changes in 0.10.5
Changes in 0.10.4 Changes in 0.10.4
================= =================
- `SaveConditionError` is now importable from the top level package. #1165 - ``SaveConditionError`` is now importable from the top level package. #1165
- Add a `QuerySet.upsert_one` method. #1157 - Add a ``QuerySet.upsert_one`` method. #1157
Changes in 0.10.3 Changes in 0.10.3
================= =================
- Fix `read_preference` (it had chaining issues with PyMongo v2.x and it didn't work at all with PyMongo v3.x). #1042 - Fix ``read_preference`` (it had chaining issues with PyMongo v2.x and it didn't work at all with PyMongo v3.x). #1042
Changes in 0.10.2 Changes in 0.10.2
================= =================
@ -241,15 +241,15 @@ Changes in 0.10.2
Changes in 0.10.1 Changes in 0.10.1
================= =================
- Fix infinite recursion with cascade delete rules under specific conditions. #1046 - Fix infinite recursion with cascade delete rules under specific conditions. #1046
- Fix `CachedReferenceField` bug when loading cached docs as `DBRef` but failing to save them. #1047 - Fix ``CachedReferenceField`` bug when loading cached docs as ``DBRef`` but failing to save them. #1047
- Fix ignored chained options. #842 - Fix ignored chained options. #842
- `Document.save`'s `save_condition` error raises a `SaveConditionError` exception. #1070 - ``Document.save``'s ``save_condition`` error raises a ``SaveConditionError`` exception. #1070
- Fix `Document.reload` for the `DynamicDocument`. #1050 - Fix ``Document.reload`` for the ``DynamicDocument``. #1050
- `StrictDict` & `SemiStrictDict` are shadowed at init time. #1105 - ``StrictDict`` & ``SemiStrictDict`` are shadowed at init time. #1105
- Fix `ListField` negative index assignment not working. #1119 - Fix ``ListField`` negative index assignment not working. #1119
- Remove code that marks a field as changed when the field has a default value but does not exist in the database. #1126 - Remove code that marks a field as changed when the field has a default value but does not exist in the database. #1126
- Remove test dependencies (nose and rednose) from install dependencies. #1079 - Remove test dependencies (nose and rednose) from install dependencies. #1079
- Recursively build a query when using the `elemMatch` operator. #1130 - Recursively build a query when using the ``elemMatch`` operator. #1130
- Fix instance back references for lists of embedded documents. #1131 - Fix instance back references for lists of embedded documents. #1131
Changes in 0.10.0 Changes in 0.10.0
@ -260,7 +260,7 @@ Changes in 0.10.0
- Removed get_or_create() deprecated since 0.8.0. #300 - Removed get_or_create() deprecated since 0.8.0. #300
- Improve Document._created status when switch collection and db #1020 - Improve Document._created status when switch collection and db #1020
- Queryset update doesn't go through field validation #453 - Queryset update doesn't go through field validation #453
- Added support for specifying authentication source as option `authSource` in URI. #967 - Added support for specifying authentication source as option ``authSource`` in URI. #967
- Fixed mark_as_changed to handle higher/lower level fields changed. #927 - Fixed mark_as_changed to handle higher/lower level fields changed. #927
- ListField of embedded docs doesn't set the _instance attribute when iterating over it #914 - ListField of embedded docs doesn't set the _instance attribute when iterating over it #914
- Support += and *= for ListField #595 - Support += and *= for ListField #595
@ -276,7 +276,7 @@ Changes in 0.10.0
- Fixes some internal _id handling issue. #961 - Fixes some internal _id handling issue. #961
- Updated URL and Email Field regex validators, added schemes argument to URLField validation. #652 - Updated URL and Email Field regex validators, added schemes argument to URLField validation. #652
- Capped collection multiple of 256. #1011 - Capped collection multiple of 256. #1011
- Added `BaseQuerySet.aggregate_sum` and `BaseQuerySet.aggregate_average` methods. - Added ``BaseQuerySet.aggregate_sum`` and ``BaseQuerySet.aggregate_average`` methods.
- Fix for delete with write_concern {'w': 0}. #1008 - Fix for delete with write_concern {'w': 0}. #1008
- Allow dynamic lookup for more than two parts. #882 - Allow dynamic lookup for more than two parts. #882
- Added support for min_distance on geo queries. #831 - Added support for min_distance on geo queries. #831
@ -285,10 +285,10 @@ Changes in 0.10.0
Changes in 0.9.0 Changes in 0.9.0
================ ================
- Update FileField when creating a new file #714 - Update FileField when creating a new file #714
- Added `EmbeddedDocumentListField` for Lists of Embedded Documents. #826 - Added ``EmbeddedDocumentListField`` for Lists of Embedded Documents. #826
- ComplexDateTimeField should fall back to None when null=True #864 - ComplexDateTimeField should fall back to None when null=True #864
- Request Support for $min, $max Field update operators #863 - Request Support for $min, $max Field update operators #863
- `BaseDict` does not follow `setdefault` #866 - ``BaseDict`` does not follow ``setdefault`` #866
- Add support for $type operator # 766 - Add support for $type operator # 766
- Fix tests for pymongo 2.8+ #877 - Fix tests for pymongo 2.8+ #877
- No module named 'django.utils.importlib' (Django dev) #872 - No module named 'django.utils.importlib' (Django dev) #872
@ -309,13 +309,13 @@ Changes in 0.9.0
- Stop ensure_indexes running on a secondaries unless connection is through mongos #746 - Stop ensure_indexes running on a secondaries unless connection is through mongos #746
- Not overriding default values when loading a subset of fields #399 - Not overriding default values when loading a subset of fields #399
- Saving document doesn't create new fields in existing collection #620 - Saving document doesn't create new fields in existing collection #620
- Added `Queryset.aggregate` wrapper to aggregation framework #703 - Added ``Queryset.aggregate`` wrapper to aggregation framework #703
- Added support to show original model fields on to_json calls instead of db_field #697 - Added support to show original model fields on to_json calls instead of db_field #697
- Added Queryset.search_text to Text indexes searchs #700 - Added Queryset.search_text to Text indexes searchs #700
- Fixed tests for Django 1.7 #696 - Fixed tests for Django 1.7 #696
- Follow ReferenceFields in EmbeddedDocuments with select_related #690 - Follow ReferenceFields in EmbeddedDocuments with select_related #690
- Added preliminary support for text indexes #680 - Added preliminary support for text indexes #680
- Added `elemMatch` operator as well - `match` is too obscure #653 - Added ``elemMatch`` operator as well - ``match`` is too obscure #653
- Added support for progressive JPEG #486 #548 - Added support for progressive JPEG #486 #548
- Allow strings to be used in index creation #675 - Allow strings to be used in index creation #675
- Fixed EmbeddedDoc weakref proxy issue #592 - Fixed EmbeddedDoc weakref proxy issue #592
@ -351,11 +351,11 @@ Changes in 0.9.0
- Increase email field length to accommodate new TLDs #726 - Increase email field length to accommodate new TLDs #726
- index_cls is ignored when deciding to set _cls as index prefix #733 - index_cls is ignored when deciding to set _cls as index prefix #733
- Make 'db' argument to connection optional #737 - Make 'db' argument to connection optional #737
- Allow atomic update for the entire `DictField` #742 - Allow atomic update for the entire ``DictField`` #742
- Added MultiPointField, MultiLineField, MultiPolygonField - Added MultiPointField, MultiLineField, MultiPolygonField
- Fix multiple connections aliases being rewritten #748 - Fix multiple connections aliases being rewritten #748
- Fixed a few instances where reverse_delete_rule was written as reverse_delete_rules. #791 - Fixed a few instances where reverse_delete_rule was written as reverse_delete_rules. #791
- Make `in_bulk()` respect `no_dereference()` #775 - Make ``in_bulk()`` respect ``no_dereference()`` #775
- Handle None from model __str__; Fixes #753 #754 - Handle None from model __str__; Fixes #753 #754
- _get_changed_fields fix for embedded documents with id field. #925 - _get_changed_fields fix for embedded documents with id field. #925
@ -409,18 +409,18 @@ Changes in 0.8.4
Changes in 0.8.3 Changes in 0.8.3
================ ================
- Fixed EmbeddedDocuments with `id` also storing `_id` (#402) - Fixed EmbeddedDocuments with ``id`` also storing ``_id`` (#402)
- Added get_proxy_object helper to filefields (#391) - Added get_proxy_object helper to filefields (#391)
- Added QuerySetNoCache and QuerySet.no_cache() for lower memory consumption (#365) - Added QuerySetNoCache and QuerySet.no_cache() for lower memory consumption (#365)
- Fixed sum and average mapreduce dot notation support (#375, #376, #393) - Fixed sum and average mapreduce dot notation support (#375, #376, #393)
- Fixed as_pymongo to return the id (#386) - Fixed as_pymongo to return the id (#386)
- Document.select_related() now respects `db_alias` (#377) - Document.select_related() now respects ``db_alias`` (#377)
- Reload uses shard_key if applicable (#384) - Reload uses shard_key if applicable (#384)
- Dynamic fields are ordered based on creation and stored in _fields_ordered (#396) - Dynamic fields are ordered based on creation and stored in _fields_ordered (#396)
**Potential breaking change:** http://docs.mongoengine.org/en/latest/upgrade.html#to-0-8-3 **Potential breaking change:** http://docs.mongoengine.org/en/latest/upgrade.html#to-0-8-3
- Fixed pickling dynamic documents `_dynamic_fields` (#387) - Fixed pickling dynamic documents ``_dynamic_fields`` (#387)
- Fixed ListField setslice and delslice dirty tracking (#390) - Fixed ListField setslice and delslice dirty tracking (#390)
- Added Django 1.5 PY3 support (#392) - Added Django 1.5 PY3 support (#392)
- Added match ($elemMatch) support for EmbeddedDocuments (#379) - Added match ($elemMatch) support for EmbeddedDocuments (#379)
@ -461,7 +461,7 @@ Changes in 0.8.0
================ ================
- Fixed querying ReferenceField custom_id (#317) - Fixed querying ReferenceField custom_id (#317)
- Fixed pickle issues with collections (#316) - Fixed pickle issues with collections (#316)
- Added `get_next_value` preview for SequenceFields (#319) - Added ``get_next_value`` preview for SequenceFields (#319)
- Added no_sub_classes context manager and queryset helper (#312) - Added no_sub_classes context manager and queryset helper (#312)
- Querysets now utilises a local cache - Querysets now utilises a local cache
- Changed __len__ behaviour in the queryset (#247, #311) - Changed __len__ behaviour in the queryset (#247, #311)
@ -490,7 +490,7 @@ Changes in 0.8.0
- Updated connection to use MongoClient (#262, #274) - Updated connection to use MongoClient (#262, #274)
- Fixed db_alias and inherited Documents (#143) - Fixed db_alias and inherited Documents (#143)
- Documentation update for document errors (#124) - Documentation update for document errors (#124)
- Deprecated `get_or_create` (#35) - Deprecated ``get_or_create`` (#35)
- Updated inheritable objects created by upsert now contain _cls (#118) - Updated inheritable objects created by upsert now contain _cls (#118)
- Added support for creating documents with embedded documents in a single operation (#6) - Added support for creating documents with embedded documents in a single operation (#6)
- Added to_json and from_json to Document (#1) - Added to_json and from_json to Document (#1)
@ -611,7 +611,7 @@ Changes in 0.7.0
- Fixed UnboundLocalError in composite index with pk field (#88) - Fixed UnboundLocalError in composite index with pk field (#88)
- Updated ReferenceField's to optionally store ObjectId strings - Updated ReferenceField's to optionally store ObjectId strings
this will become the default in 0.8 (#89) this will become the default in 0.8 (#89)
- Added FutureWarning - save will default to `cascade=False` in 0.8 - Added FutureWarning - save will default to ``cascade=False`` in 0.8
- Added example of indexing embedded document fields (#75) - Added example of indexing embedded document fields (#75)
- Fixed ImageField resizing when forcing size (#80) - Fixed ImageField resizing when forcing size (#80)
- Add flexibility for fields handling bad data (#78) - Add flexibility for fields handling bad data (#78)
@ -707,7 +707,7 @@ Changes in 0.6.8
================ ================
- Fixed FileField losing reference when no default set - Fixed FileField losing reference when no default set
- Removed possible race condition from FileField (grid_file) - Removed possible race condition from FileField (grid_file)
- Added assignment to save, can now do: `b = MyDoc(**kwargs).save()` - Added assignment to save, can now do: ``b = MyDoc(**kwargs).save()``
- Added support for pull operations on nested EmbeddedDocuments - Added support for pull operations on nested EmbeddedDocuments
- Added support for choices with GenericReferenceFields - Added support for choices with GenericReferenceFields
- Added support for choices with GenericEmbeddedDocumentFields - Added support for choices with GenericEmbeddedDocumentFields
@ -722,7 +722,7 @@ Changes in 0.6.7
- Fixed indexing on '_id' or 'pk' or 'id' - Fixed indexing on '_id' or 'pk' or 'id'
- Invalid data from the DB now raises a InvalidDocumentError - Invalid data from the DB now raises a InvalidDocumentError
- Cleaned up the Validation Error - docs and code - Cleaned up the Validation Error - docs and code
- Added meta `auto_create_index` so you can disable index creation - Added meta ``auto_create_index`` so you can disable index creation
- Added write concern options to inserts - Added write concern options to inserts
- Fixed typo in meta for index options - Fixed typo in meta for index options
- Bug fix Read preference now passed correctly - Bug fix Read preference now passed correctly
@ -763,7 +763,6 @@ Changes in 0.6.1
Changes in 0.6 Changes in 0.6
============== ==============
- Added FutureWarning to inherited classes not declaring 'allow_inheritance' as the default will change in 0.7 - Added FutureWarning to inherited classes not declaring 'allow_inheritance' as the default will change in 0.7
- Added support for covered indexes when inheritance is off - Added support for covered indexes when inheritance is off
- No longer always upsert on save for items with a '_id' - No longer always upsert on save for items with a '_id'
@ -988,7 +987,6 @@ Changes in v0.1.3
querying takes place querying takes place
- A few minor bugfixes - A few minor bugfixes
Changes in v0.1.2 Changes in v0.1.2
================= =================
- Query values may be processed before before being used in queries - Query values may be processed before before being used in queries
@ -997,7 +995,6 @@ Changes in v0.1.2
- Added ``BooleanField`` - Added ``BooleanField``
- Added ``Document.reload()`` method - Added ``Document.reload()`` method
Changes in v0.1.1 Changes in v0.1.1
================= =================
- Documents may now use capped collections - Documents may now use capped collections