问题标签 [tortoise-orm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
25 浏览

tortoise-orm - 如何在乌龟 orm 中进行任意数学查询?

例如,如果我想做

如何在 Tortoise ORM 中制定这个?

0 投票
1 回答
551 浏览

python - 由于 Tortoise ORM 中的封闭事件循环,Pytest @parametrize 在第一次测试后失败

在 FastAPI 中,运行使用的测试@pytest.mark.parametrize通过但仅针对第一组值。第二个和后续的没有。无论运行的测试数据如何,它们都有相同的错误。

如果@pytest.mark.parametrize有 3 种类型的数据要测试,那么上面的错误会出现 2 倍,因为只有第一个测试可以工作。我猜在第一次测试之后它认为一切都已完成并关闭事件循环。

我试过改变夹具scope,但只会导致

考试

模型(简化)

我正在考虑尝试手动启动事件循环,但不确定如果不关闭会产生什么后果。这有点令人困惑,真的。如果您对我的固定装置的外观有任何替代方案,那么我会全神贯注。

0 投票
2 回答
192 浏览

arrays - 如何在 TortoiseORM 中创建 ArrayField

如何在 TortoiseORM 中创建 ArrayField()

0 投票
1 回答
308 浏览

python - 如何使用乌龟 ORM 连接到现有的 SQLite DB?

我有现有的 SQLite DB,其中包含大量数据。我想使用乌龟 ORM 异步查询数据。如何连接数据库并查询数据?

0 投票
3 回答
1084 浏览

python - 如何使 pydantic await 异步属性(龟甲的反向外键)?

(问题底部的 MRE)

在 tortoise-orm 中,我们必须等待反向 ForeignKey 字段,如下所示:

但是在 fastapi 中,当返回一个 Post 实例时,pydantic 抱怨:

这是有道理的,因为comments属性返回协程。我不得不使用这个小技巧来获得 aronud:

然而,真正的问题是当我有多个关系时:返回一个用户的帖子及其评论。在那种情况下,我不得不以一种非常丑陋的方式将我的整个模型转换为 dict(这听起来不太好)。

这是要重现的代码(试图使其尽可能简单):

模型.py

主文件

/users/1错误:

您也可能希望将其放入init.py并运行:

我想要的是让 pydantic 在这些异步字段上自动等待(所以我可以只返回 Post 实例)。pydantic怎么可能呢?


在使用这种方式时,更改/posts/{id}为返回帖子及其所有者而不带评论实际上是有效的(感谢@papple23j):

但不适用于反向外键。也select_related('comments')没有帮助,它正在提高AttributeError: can't set attribute

0 投票
0 回答
208 浏览

django - FastAPI 生态系统是否具有类似于 Django 存储的功能?

FastAPI 生态系统是否具有类似于 Django 存储的功能?

Django 有一个很好的存储概念 - https://docs.djangoproject.com/en/3.2/howto/custom-file-storage/

它使您可以轻松地在不同的文件存储之间切换(例如文件系统存储与 s3)。您所要做的就是下载或编写一个自定义存储类并使用 Django 设置将其插入。

在 FastAPI 中处理文件存储时使用什么?您是编写自定义存储库还是 FastAPI 生态系统有一些事实上的存储库?

顺便说一句:我使用 TortoiseORM 作为 ORM,但它甚至没有 FileFields,关于存储无话可说。

0 投票
1 回答
902 浏览

python - Fastapi/Tortoise 早期模型初始化

我有以下使用 fastapi 的实现。

我目前的问题是,我无法终生early init对乌龟模型进行操作以使关系恢复到模式中。

我已经尝试在任何地方基本上都倾倒以下行,但它似乎不起作用。

我也尝试过使用prefetch_related这种方式,但这也不起作用

我已经在谷歌上搜索了几个小时,还没有找到一个具体的答案/方法来让它正常工作。

文件夹结构:

主文件 数据库/数据库.py 模型/用户.py 模型/组.py 路由器/group_router.py

如您所见,最后一行GetGroup.schema(),从不返回关系。

我尝试在容器启动时捕获日志并得到以下信息

请注意,它会这样做几秒钟,然后应用程序正确启动,我还尝试将 pydantic 模型创建分离到一个名为“schema”的单独文件夹中,但这也没有做任何事情

0 投票
1 回答
406 浏览

python - 运行 pytest 时出现异常“没有与模型关联的数据库”

我正在使用 FastAPI 和 Tortoise-ORM 开发服务。

当我使用 Swagger UI 或者 curl 生成的界面时,可以成功添加和读取数据。

但是,当我运行 pytest 时,测试失败并显示以下错误消息:tortoise.exceptions.ConfigurationError: No DB associated to model

请记住,该错误仅在使用 pytest 时发生,我认为问题是某些配置错误或测试脚本中缺少,但我找不到原因。

有没有人有任何想法?

我的结构如下:

test_1.py 文件如下:

应用程序.py:

主应用程序:

0 投票
1 回答
521 浏览

python - ImportError:无法从“tortoise.contrib.pydantic”导入名称“register_tortoise”

我希望每个人都平安无事。我正在尝试此代码以使其正常工作。我有一个 main.py 文件和 models.py 文件,其中我在 models.py 文件中创建了一个类用户,我正在尝试将 User 类从 models.py 文件导入到 main.py 文件。我为此目的使用 Tortoise ORM。我在命令提示符下收到错误“ImportError: cannot import name 'register_tortoise' from 'tortoise.contrib.pydantic'”

0 投票
2 回答
72 浏览

python - 我能够得到代码的其他部分,其他部分不起作用

我正在研究这个登录应用程序的代码。我可以看到,只有 if 语句在此代码中适用于用户名和密码的有效值。如果我输入无效的用户名和密码值,else 部分应该可以工作,但它不工作。