Skip to content

Releases: tortoise/tortoise-orm

v0.16.1

18 Mar 08:12
Compare
Choose a tag to compare
  • QuerySetSingle now has better code completion

  • Created Pydantic models will now have the basic validation elements:

    • required is correctly populated for required fields
    • nullable is added to the schema where nulls are accepted
    • maxLength for CharFields
    • minimum & maximum values for integer fields

    To get Pydantic to handle nullable/defaulted fields correctly one should do a **user.dict(exclude_unset=True) when passing values to a Model class.

  • Added FastAPI helper that is based on the starlette helper but optionally adds helpers to catch and report with proper error DoesNotExist and IntegrityError Tortoise exceptions.

  • Allows a Pydantic model to exclude all read-only fields by setting exclude_readonly=True when calling pydantic_model_creator.

  • a Tortoise PydanticModel now provides two extra helper functions:

    • from_queryset: Returns a List[PydanticModel] which is the format that e.g. FastAPI expects
    • from_queryset_single: allows one to avoid calling await multiple times to get the object and all its related items.

v0.16.0

18 Mar 08:12
Compare
Choose a tag to compare

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 in describe_model(...)

    If one doesn't explicitly specify a Field description= or Model Meta.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(...) and offset(...) raise ParamsError. (#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.

v0.15.19

11 Mar 09:38
Compare
Choose a tag to compare

0.15 series is now pseudo LTS (until May), as it is the last version to support Python3.6.

  • Fix Function with source_field option. (#311)

v0.15.18

29 Feb 19:38
Compare
Choose a tag to compare
  • Install on Windows does not require a C compiler any more.
  • Fix IntegrityError with unique field and get_or_create

v0.15.17

25 Feb 14:04
Compare
Choose a tag to compare
  • Now get_or_none(...), classmethod of Model class, works in the same way as queryset (#299)

v0.15.16

25 Feb 09:14
Compare
Choose a tag to compare
  • get_or_none(...) now raises MultipleObjectsReturned if multiple object fetched. (#298)

v0.15.15

22 Feb 10:34
Compare
Choose a tag to compare
  • Add ability to suppply a to_field= parameter for FK/O2O to a non-PK but still uniquely indexed remote field. (#287)

v0.15.14

21 Feb 06:46
Compare
Choose a tag to compare
  • add F expression support in queryset.update() - This allows for atomic updates of data in the database. (#294)

v0.15.13

15 Feb 19:44
Compare
Choose a tag to compare
  • Applies default ordering on related queries
  • Fix post-ManyToMany related queries not being evaluated correctly
  • Ordering is now preserved on ManyToMany related fetches
  • Fix aggregate function on joined table to use correct primary key (#292)
  • Fix filtering by backwards FK to use correct primary key

v0.15.12

11 Feb 08:47
Compare
Choose a tag to compare
  • Added range filter to support between and syntax