J'utilise le framework Flask avec sqlalchemy et je ne peux pas interroger une table liée d'un résultat.SQLAlchemy: l'objet 'Model' n'est pas appelable
> Les utilisateurs ont beaucoup> commandes
J'ai l'ordre et je veux interroger l'utilisateur qui appartient à l'ordre. Lorsque j'appelle cela, j'obtiens que l'objet 'User' n'est pas appelable. Voici comment ma relation est définie:
# ----------------------------------------------------------------------------------
# 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)
})
Une idée pourquoi cette erreur?
Donc, vous voulez probablement "user.username", pas "user()" – wisty
Droit, donc obtenir le nom d'utilisateur est "order.user.username", pas "order.user(). Username" –