2008-09-16 12 views
6

Tous les documents pour SQLAlchemy donnent INSERT et UPDATE exemples en utilisant l'instance de table locale (par exemple tablename.update() ...)La meilleure façon d'accéder aux instances de table lorsque vous utilisez la syntaxe déclarative de SQLAlchemy

Faire cela semble difficile avec la syntaxe déclarative, je besoin de référencer Base.metadata.tables["tablename"] pour obtenir la référence de la table.

Suis-je censé faire autrement? Existe-t-il une syntaxe différente pour INSERT et UPDATE recommandée lors de l'utilisation de la syntaxe déclarative? Devrais-je simplement passer à l'ancienne façon?

Répondre

2

via l'attribut __table__ de votre classe déclarative

9

cela fonctionne bien pour moi:

class Users(Base): 
    __tablename__ = 'users' 
    __table_args__ = {'autoload':True} 

users = Users() 
print users.__table__.select() 

... SELECT utilisateurs .......

+1

Notez qu'il s'agit de ____table____ NON ____nomdefaire____ – Ben

0

Il peut y avoir une certaine confusion entre table (l'objet) et nom de table (le nom de la table, une chaîne). L'utilisation de l'attribut de la table fonctionne correctement pour moi.