Python SQLAlchemy/Elixir属性访问单独表中的行,而不使用多个select查询

Python SQLAlchemy/Elixir属性访问单独表中的行,而不使用多个select查询,python,sqlalchemy,Python,Sqlalchemy,我们有一个人模型 from project.model import User class Person(Entity, PersonHook): ... @property def user_name(self): u = User.get(self.user_id) return u.user_name if u else "" 当我们对Person进行大查询并访问Person.user\u name时,它将为用户表中的每个人创建一

我们有一个人模型

from project.model import User

class Person(Entity, PersonHook):
    ...
    @property
    def user_name(self):
        u = User.get(self.user_id)
        return u.user_name if u else ""
当我们对Person进行大查询并访问Person.user\u name时,它将为用户表中的每个人创建一个select语句

是否可以同时加载Person和User这两个对象

我们的项目将旧的和过时的Elixir声明层用于SQLAlchemy

在数据库中,它们具有User.User\u id和Person.Person\u id的关系。我尝试了几种形式的sqlalchemys关系
user=relationship('user',primaryjoin='foreign(Person.user\u id)==user.user\u id')

user=relationship('user',外键=[user\u id],primaryjoin='user.user\u id==Person.user\u id')


但是我得到的只是

我不知道Elixir,但是现代SQLAlchemy ORM对关系有不同的加载策略,例如联接加载、子查询加载等,它们会自动为您预取相关对象。请在标记之前阅读标记的说明。与这个问题无关。你是对的@mudasobwa。我有点累了,应该解释一下到目前为止我都做了些什么。在数据库中,它们具有User.User\u id和Person.Person\u id的关系我尝试了几种形式的sqlalchemy关系
User=relationship('User',primaryjoin='foreign(Person.User\u id)==User.User\u id')
User=relationship('User',foreign\u key=[User\u id],primaryjoin='User.User\u id==Person.User\u id')
但我得到的只是