This release drops support for Python 3.6:
Tortoise ORM now requires a minimum of CPython 3.7
New features:
-
Model docstrings and
#:
comments directly preceding Field definitions are now used as docstrings and DDL descriptions.This is now cleaned and carried as part of the
docstring
parameter indescribe_model(...)
If one doesn't explicitly specify a Field
description=
or ModelMeta.table_description=
then we default to the first line as the description.
This is done because a description is submitted to the DB, and needs to be short (depending on DB, 63 chars) in size. -
Early Partial Init of models.
We now have an early init of models, which can be useful when needing Models that are not bound to a DB, but otherwise complete.
e.g. Schema generation without needing to be properly set up. -
Pydantic serialisation.
We now include native support for automatically building a Pydantic model from Tortoise ORM models.
This will correctly model:- Data Fields
- Relationships (FK/O2O/M2M)
- Callables
At this stage we only suport serialisation, not deserialisation.
For mode information, please see :ref:
contrib_pydantic
- Allow usage of
F
expressions to in annotations. (#301) - Now negative number with
limit(...)
andoffset(...)
raiseParamsError
. (#306) - Allow usage of Function to
queryset.update()
. (#308) - Add ability to supply
distinct
flag to Aggregate (#312)
Bugfixes:
- Fix default type of
JSONField
Removals:
-
Removed
tortoise.aggregation
as this was deprecated since 0.14.0 -
Removed
start_transaction
as it has been broken since 0.15.0 -
Removed support for Python 3.6 / PyPy-3.6, as it has been broken since 0.15.0
If you still need Python 3.6 support, you can install
tortoise-orm<0.16
as we will still backport critical bugfixes to the 0.15 branch for a while.