在不获取相关对象的情况下创建 Pony ORM 实体?

Create Pony ORM entity without fetching related objects?

我最近开始使用 Pony ORM,我觉得它很棒。尽管 api 在官方网站上有详细记录,但我很难处理关系。特别是我想插入一个新实体,它是集合的一部分。但是,我似乎无法在不先获取相关对象的情况下找到创建实体的方法:

post = Post(
    #author = author_id, # Python complains about author's type, which is int and should be User
    author = User[author_id], # This works, but as I understand it actually fetches the user object
    #author = User(id=author_id), # This will try and (fail to) create a new record for the User table when I commit, am I right?
    # ...
)

table最后只插入了id值,我只需要id,为什么还要取整个对象?

编辑

我快速浏览了 Pony ORM 源​​代码,使用反向实体的主键应该可行,但即使在那种情况下,我们最终还是调用 _get_by_raw_pkval_ 从本地缓存中获取对象或来自数据库,因此可能是不可能的。

它是内部 API 的一部分,也不是 Pony 假设您使用它的方式,但如果您确定您拥有那些具有这些 ID 的对象,您实际上可以使用 author = User._get_by_raw_pkval_((author_id,))