Thank you so much Michael. By the way SQLAlchemy and Mako template are so cool. Thank you so much for all your efforts.
Liju. On Jun 14, 9:38 am, Michael Bayer <mike...@zzzcomputing.com> wrote: > You're best starting with the declarative usage patterns described in the ORM > tutorial athttp://www.sqlalchemy.org/docs/orm/tutorial.html, starting > withhttp://www.sqlalchemy.org/docs/orm/tutorial.html#creating-table-class.... > I would declare the class + table + mapping at once, to eliminate any > confusion regarding mapping, which is not a per-usage operation; it is a > permanent operation applied to a model class only once. The mapper() + > Table pattern is not as easy to use and it's being de-emphasized in the > documentation. > > The second error implies your class has a method called value() on it which > is conflicting with the mapped attribute of .value. > > On Jun 14, 2011, at 12:22 PM, Liju wrote: > > > > > > > > > I'm new to SQLAlchemy. I wrote a method that retrieves a record, > > update the object after incrementing it by 1, and return that record > > object to the caller (pyramid view). Following is the test function. I > > get following errors : > > > 1) when I call this method multiple times, I get an error that say > > "ArgumentError: Class '<class 'cas.models.Models'>' already has a > > primary mapper defined. Use non_primary=True to create a non primary > > Mapper. clear_mappers() will remove *all* current mappers from all > > classes." > > > As a resolution i called 'clear_mappers()' before invoking mapper. > > > 2) I cant seem to increment the attribute of an object in orm session. > > My understanding is that once a record is retrieved in an ORM session, > > Session object keeps track of any changes to the record object and > > updates the record when session.flush() is invoked. > > But I get error "TypeError: unsupported operand type(s) for +: > > 'instancemethod' and 'int'" > > > Can someone please explain to me what I'm doing wrong ? > > > class Models(object):pass > > > def countAndIncrement(): > > metadata = MetaData('sqlite:///CAS.db') > > > model_table = Table('models', > > metadata, > > Column('id',Integer,primary_key=True), > > Column('name',String(40)), > > Column('value',Integer) > > ) > > > clear_mappers() > > > mapper(Models,model_table) # <<<<<<<<<<<< already a > > primary mapper defined error (when I call this function multiple times > > > Session = sessionmaker() > > session = Session() > > > model = session.query(Models).filter(Models.id==1) > > > model.value = model.value + 1 # > > <<<<<<<< increment error > > > session.flush() > > session.close() > > > return model > > > -- > > You received this message because you are subscribed to the Google Groups > > "sqlalchemy" group. > > To post to this group, send email to sqlalchemy@googlegroups.com. > > To unsubscribe from this group, send email to > > sqlalchemy+unsubscr...@googlegroups.com. > > For more options, visit this group > > athttp://groups.google.com/group/sqlalchemy?hl=en. -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.