问题标签 [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 回答
67 浏览

fastapi - FastAPI + 乌龟 ORM

我正在将 fastapi 与 tortoise orm 一起使用,当我想添加购物车时出现此错误

错误

如果值而不是值。_saved_in_db:AttributeError:'int'对象没有属性'_saved_in_db'

楷模

图式

路线

我应该怎么办?

0 投票
0 回答
20 浏览

rollback - 我用sanic+tortoise-orm开发了一个系统,但是插入或更新数据时出现错误,如何让它回滚?

像这段代码,用户创建成功,但是在创建用户信息时,一个字段太长导致创建失败,用户没有回滚。对了,我没发现龟龟有回滚的功能,没必要吧?

0 投票
1 回答
161 浏览

python - 如何/我可以在条带 webhook 处理程序中调用 FASTAPI 异步函数,还是我的方法完全错误?

从高层次来看,我正在尝试实现条带 webhook,并且我想通过将数据库中的值更新为 true 来处理成功的事件。我采用的方法是创建一个名为的异步函数handle_verification,该函数获取当前登录用户并更新 id_verified 标志。

我尝试在此处的 webhook 代码中调用此函数

我得到了错误

AttributeError: 'Depends' object has no attribute 'jwt_required

我知道这个错误是get_current_user()因为异步顺序搞砸了。我尝试放入handle_verification一个使用 asyncio.run() 的同步包装函数,但没有成功。

我尝试了各种不同的修复尝试,我认为核心问题是我仍在学习异步和 webhook 以及所有爵士乐,所以我完全被难住了。我将不胜感激对我解决此问题的方法的任何帮助,以及对可能比我现在所拥有的更容易的不同方法的任何见解。谢谢大家!

0 投票
0 回答
18 浏览

tortoise-orm - 乌龟ORM公式

我有一些问题

  1. 如何在乌龟 orm 中添加公式?例如像这样
  1. 如何在选择中添加查询?查询没有关系的地方,例如这样

我用的是龟版 0.17.8

谢谢你

0 投票
0 回答
30 浏览

python - 如何在annotate tortoise中使用Q对象

所以很简单,我有我的模型公告,用户,FavoriteAnnouncement

我想添加一个带注释的字段 is_user_fav :可选[bool]

我在 django 中找到了一个解决方案(

)

我怎样才能在 TortoiseORM 中做类似的事情?

0 投票
0 回答
10 浏览

postgresql - 在乌龟迁移后如何获得正确的约束名称?

我有角色模型,它在我的应用程序中的 FastAPI+Tortoise 中与用户模型作为 FK 连接

和用户模型

迁移后,我在我的 sql 文件中得到了这个:

但是导师说我应该使用正确的约束名称“users__role_id_fk”创建。我需要做的是获取 sql 等记录:

0 投票
1 回答
23 浏览

postgresql - 我应该对 Postgres 进行编码以遇到异常吗?

我想优化我的 API 对数据库的调用量。但是是否可以让 Postgres 遇到唯一约束错误。例如,在注册用户时,我有两个选择:

这将对数据库进行两次调用,但在 Python 中会发生异常。请注意,在 postgres 结束时不会引发任何错误或异常。Postgres 只返回 nill,它在 python 端被解释为 DoesNotExist。另一种解决方案是:

这只会进行一次数据库调用,但是在 postgres 数据库中会发生错误。显然,在我看来,第二个实现会更有效,但是在 postgres 端创建一个异常可以吗?

0 投票
0 回答
10 浏览

python - 基于用户范围的乌龟复杂过滤器

我正在开发一个应用程序,我有多种类型的用户、团队和文件。数据库中的 2 个表是用户和文件。用户拥有一个文件,因此文件表有一个指向 user_id 的外键字段。但是文件表也有一个可见性属性,它是一个整数,类似于 Linux 上的权限。例如 0x0000 其中前 2 位表示一组用户的读写权限,后 2 位表示应用程序的每个用户,0x000 表示只有所有者可以读取/写入文件。0x1010 表示同一团队中的每个用户和应用程序的每个用户都可以从文件中读取但不能写入。我需要实现一个查询来获取用户范围内的所有文件,这意味着某个用户可以写入或读取的所有文件。我不确定如何编写该查询,我在 Tortoise 示例中没有看到类似的内容。

0 投票
0 回答
11 浏览

python - 正确命令后使用 python aerich 出错

我对 aerich 配置有疑问:

我有app/database.py包含下一个内容的文件:

我还有一个带有龟表的 python 包,位于app/models/.... 我正在尝试使用以下命令创建第一个迁移文件:

  1. aerich init -t app.database.TORTOISE_ORM我正在我的内部获取数据pyproject.toml
  1. 之后我尝试运行aerich init-db,但出现错误:tortoise.exceptions.ConfigurationError: Module "app.models" not found 我尝试了很多不同的变体来更改此配置,但得到相同的错误。aerich版本==^0.6.2

大家知道怎么回事吗?

0 投票
0 回答
22 浏览

python - 乌龟 orm 是懒惰还是急切地加载关系?

我正在尝试找到一个可以延迟加载关系的异步 ORM。

我的用例是一个具有嵌套关系(至少 3 个级别)的表,我只想在需要时才延迟加载它,以便用草莓 graphQL 公开。

目前我正在使用 FastAPI 和 sqlalchemy,但它并没有为异步编程和延迟加载提供一个好的解决方案。