Open yinkh opened 1 year ago
pydantic 1.10.12 tortoise-orm 0.19.2 works!
pydantic 1.10.12 tortoise-orm 0.19.3 not works!
Can you give a full example? I can't reproduce.
aiomysql 0.2.0
pydantic 1.10.12
tortoise-orm 0.19.3 not work
tortoise-orm 0.19.2 work
main.py
import asyncio
import datetime
from tortoise import Tortoise
from tortoise.contrib.pydantic import pydantic_model_creator
from tortoise import Model
from tortoise import fields
DATABASE_URI = f"mysql://root:root@127.0.0.1:3306/autotest?charset=utf8&maxsize=100&connect_timeout=30"
class Demo(Model):
usage_time = fields.TimeDeltaField(null=True, blank=True, description='usage_time')
class Meta:
table = "demo"
ordering = ["-id"]
DemoSchema = pydantic_model_creator(Demo, name='DemoSchema', include=('usage_time',))
async def demo_example():
print('demo_example')
await Tortoise.init(db_url=DATABASE_URI, modules={"models": ["__main__"]})
await Tortoise.generate_schemas()
start_time = datetime.datetime.now() - datetime.timedelta(hours=1)
end_time = datetime.datetime.now()
usage = end_time - start_time
demo = await Demo.create(usage_time=usage)
a = DemoSchema.from_orm(demo).dict()
print(a)
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
loop = asyncio.get_event_loop()
# Blocking call which returns when the display_date() coroutine is done
loop.run_until_complete(demo_example())
loop.close()
after digging, creator.py: Line 261 model_description value in 0.19.2: in 0.19.3:
the reason is TimeDeltaField is no longer extend datetime.timedelta, any idea why delete this extend?:
When create pr, i try to run test inside my desktop,but this error is raise, and Contribution Guide not explain for this.:
Describe the bug with tortoise-orm==0.20.0 pydantic==2.2.1
code like:
will get error:
To Reproduce print TaskListSchema will get
when i use tortoise-orm==0.19.2 pydantic==1.10.2
print TaskListSchema will get
this schema will work! Is there something change in pydantic_model_creator when handle fields.TimeDeltaField ? Expected behavior fields.TimeDeltaField in pydantic_model_creator works good
Additional context Add any other context about the problem here.