Hi! SQLAlchemy is great! I have a question regarding create_session() and
lazy loading (using version 0.2.2). See comments in code. Could anyone
explain this strange behavior to me? Thanks!
-Peter
from sqlalchemy import *
class Address(object):
pass
class Customer(object):
pass
def test():
engine = create_engine("sqlite:///:memory:")
meta = BoundMetaData(engine)
customer_table = Table("customer", meta,
Column("id", Integer, primary_key=True),
Column("name", String),
Column("address", Integer, ForeignKey("address.id")))
address_table = Table("address", meta,
Column("id", Integer, primary_key=True),
Column("street", String))
meta.create_all()
address_table.insert().execute(id=1, street="Blabla 7")
address_table.insert().execute(id=2, street="Blabla 9")
customer_table.insert().execute(id=1, name="Mr. Smith", address=1)
customer_table.insert().execute(id=2, name="Mr. Brown", address=2)
Address.mapper = mapper(Address, address_table)
Customer.mapper = mapper(Customer, customer_table, properties=dict(
addressobj = relation(Address, lazy=True)))
# this does not work using lazy loading (why?), but eager does
for c in create_session().query(Customer).select():
print c.id, c.name, c.addressobj
# however, assigning session to a variable first makes lazy loading work
session = create_session()
for c in session.query(Customer).select():
print c.id, c.name, c.addressobj
if __name__ == "__main__":
test()
_______________________________________________
Sqlalchemy-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users