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 )
} )
知道为什么会出现此错误吗?
没有找到相关结果
已邀请:
1 个回复
拭十年
是订单对象,您已将\“ user \”关系定义为属性。因此,属性\“ user \”将代表用户对象。这可能与您使用过的其他ORM不同,其中ѭ3实际上是一些需要调用以检索用户的函数,或者是可能返回用户的查询对象。 如果您希望看到此效果,请执行以下操作...
您会注意到
返回一个\“ User \”实例(或者在某些情况下可能返回ѭ6an或引发异常)。在这种情况下,调用
将尝试“调用”
实例。 因此,该错误消息很有意义,因为您正试图调用
实例,并且尚未将
定义为可调用对象。