mit SQLAlchemy während __init__ Object abspeichern
Verfasst: Donnerstag 21. Mai 2009, 10:14
Ich versuche bei einer Klasse schon während des __init__ Aufrufs das entstandene Objekt mit SQLAlchemy zu speiechern. Das schlägt jedoch fehl, weil ich das Objekt scheinbar nicht richtig anspreche. (Das mappen und erzeugen wäre normalerweise außerhalb von __init__, ich wollte das Beispiel nur möglichst kompakt gestalten)
Wie wäre der korrekte Weg mein Ziel zu erreichen?
EDIT:: Die Fehlermeldung hinzugefügt:
Code: Alles auswählen
from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData,\
ForeignKey
from sqlalchemy.orm import mapper, sessionmaker
class User(object):
def __init__(self, firstName, lastName):
self.firstName = firstName
self.lastName = lastName
engine = create_engine('mysql://user@localhost/datenbank', echo=True)
metaData = MetaData(engine)
users_table = Table('users', metaData, autoload=True)
mapper(User, users_table)
Session = sessionmaker(bind=engine, autoflush=True, autocommit=True)
session = Session()
session.add(self)
firstUser = User('Hallo', 'Spencer')
EDIT:: Die Fehlermeldung hinzugefügt:
sqlalchemy.orm.exc.UnmappedInstanceError: Class '__main__.User' is mapped, but this instance lacks instrumentation. Possible causes: instance created before sqlalchemy.orm.mapper(__main__.User) was called, or instance was pickled/depickled without instrumentationinformation.