youve got an extra "_" in the name of your "__init__" method; its not getting called.

On Jul 11, 2006, at 3:34 PM, [EMAIL PROTECTED] wrote:

from sqlalchemy import *

import os


# with constructor

class FooDoesntWork(object):

     def __init___(self, id, name):

         self.id = id

         self.name = name

     def __repr__(self):

         return '%s, %s' % (self.id, self.name)


#no constructor

class FooWorks(object):

     def set(self, id, name):

         self.id = id

         self.name = name

     def __repr__(self):

         return '%s, %s' % (self.id, self.name)


# to use the no-constructor class, set  Foo = FooWorks

# to use the class with a constructor, set  Foo = FooDoesntWork

Foo = FooDoesntWork  # <== change this for different results


# delete the database if it exists

try:

     os.remove('foo.db')

except:

     pass


db = create_engine('sqlite:///foo.db')

metadata = BoundMetaData(db)

metadata.engine.echo = True

foo_table = Table('foo', metadata,

     Column('id', Integer, primary_key=True),

     Column('name', String(40)))


foo_mapper = mapper(Foo, foo_table)


session = create_session()


foo_table.create()


# here we create the object differently based on

# which Foo* class we're using

if Foo is FooDoesntWork:

     # class with __init__ constructor - won't save

     foo = Foo(100, 'bob')

elif Foo is FooWorks:

     # class without __init__ constructor will save

     foo = Foo()

     foo.set(100, 'bob')


session.save(foo)

session.flush()


# try to retrieve the saved object

foo_query = session.query(Foo)

gotten = foo_query.get_by(id=100)


# if using FooWorks, this prints object foo

# if using FooDoesntWork, this prints 'None'

print gotten


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Sqlalchemy-users mailing list
Sqlalchemy-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users

Reply via email to