SQLAlchemy:\'Model\'对象不可调用

| 我正在将Flask框架与sqlalchemy结合使用,但无法查询结果的某些相关表。 用户>有很多>订单 所以我有订单,我想查询该订单所属的用户。
order = Order.query.get( id )
return order.user()
当我调用它时,我得到\'User \'对象是不可调用的。这是定义我的关系的方式:
#   ----------------------------------------------------------------------------------
#   MODELS
#   ----------------------------------------------------------------------------------
class User( object ):
    __tablename__ = \'user\'

    query = db_session.query_property()

class Order( object ):
    __tablename__ = \'order\'

    query = db_session.query_property()

#   ----------------------------------------------------------------------------------
#   MODELS SCHEMA
#   ----------------------------------------------------------------------------------
users_table = Table( \'user\', metadata,
    Column( \'id\', Integer, primary_key = True ),
    Column( \'username\', String( 50 ), unique = True ),
    Column( \'email\', String( 50 ), unique = True ),
    Column( \'password\', String( 32 ), nullable = False ),
    ...
    mysql_engine = \'InnoDB\',
    mysql_charset = \'utf8\'
 )

orders_table = Table( \'order\', metadata,
    Column( \'id\', Integer, primary_key = True ),
    Column( \'user_id\', Integer, ForeignKey( \'user.id\' ) ),
    Column( \'transaction_id\', String( 32 ), unique = True ),
    ...
    mysql_engine = \'InnoDB\',
    mysql_charset = \'utf8\'
 )

#   ----------------------------------------------------------------------------------
#   MAPPERS
#   ----------------------------------------------------------------------------------
mapper( User, users_table, properties = {
    #   has many
    \'orders\' : relationship( Order )
} )

mapper( Order, orders_table, properties = {
    #   belongs to
    \'user\': relationship( User )
} )
知道为什么会出现此错误吗?     
已邀请:
        
order
是订单对象,您已将\“ user \”关系定义为属性。因此,属性\“ user \”将代表用户对象。这可能与您使用过的其他ORM不同,其中ѭ3实际上是一些需要调用以检索用户的函数,或者是可能返回用户的查询对象。 如果您希望看到此效果,请执行以下操作...
user = order.user
print type(user)
您会注意到
order.user
返回一个\“ User \”实例(或者在某些情况下可能返回ѭ6an或引发异常)。在这种情况下,调用
order.user()
将尝试“调用”
User
实例。 因此,该错误消息很有意义,因为您正试图调用
User
实例,并且尚未将
User
定义为可调用对象。     

要回复问题请先登录注册