this appears to be an Elixir issue, check on their list.
kportertx wrote: > > for some reason I cannot get my session to commit within a class > > Here is the error. > Traceback (most recent call last): > File "/usr/local/lib/python2.6/dist-packages/cherrypy/ > _cprequest.py", line 606, in respond > cherrypy.response.body = self.handler() > File "/usr/local/lib/python2.6/dist-packages/cherrypy/ > _cpdispatch.py", line 25, in __call__ > return self.callable(*self.args, **self.kwargs) > File "WebTest.py", line 106, in index > session.flush() > File "/usr/local/lib/python2.6/dist-packages/sqlalchemy/orm/ > scoping.py", line 123, in do > return getattr(self.registry(), name)(*args, **kwargs) > File "/usr/local/lib/python2.6/dist-packages/sqlalchemy/orm/ > session.py", line 1354, in flush > self._flush(objects) > File "/usr/local/lib/python2.6/dist-packages/sqlalchemy/orm/ > session.py", line 1432, in _flush > flush_context.execute() > File "/usr/local/lib/python2.6/dist-packages/sqlalchemy/orm/ > unitofwork.py", line 257, in execute > UOWExecutor().execute(self, tasks) > File "/usr/local/lib/python2.6/dist-packages/sqlalchemy/orm/ > unitofwork.py", line 720, in execute > self.execute_save_steps(trans, task) > File "/usr/local/lib/python2.6/dist-packages/sqlalchemy/orm/ > unitofwork.py", line 735, in execute_save_steps > self.save_objects(trans, task) > File "/usr/local/lib/python2.6/dist-packages/sqlalchemy/orm/ > unitofwork.py", line 726, in save_objects > task.mapper._save_obj(task.polymorphic_tosave_objects, trans) > File "/usr/local/lib/python2.6/dist-packages/sqlalchemy/orm/ > mapper.py", line 1387, in _save_obj > c = connection.execute(statement.values(value_params), params) > File "/usr/local/lib/python2.6/dist-packages/sqlalchemy/engine/ > base.py", line 824, in execute > return Connection.executors[c](self, object, multiparams, params) > File "/usr/local/lib/python2.6/dist-packages/sqlalchemy/engine/ > base.py", line 874, in _execute_clauseelement > return self.__execute_context(context) > File "/usr/local/lib/python2.6/dist-packages/sqlalchemy/engine/ > base.py", line 896, in __execute_context > self._cursor_execute(context.cursor, context.statement, > context.parameters[0], context=context) > File "/usr/local/lib/python2.6/dist-packages/sqlalchemy/engine/ > base.py", line 950, in _cursor_execute > self._handle_dbapi_exception(e, statement, parameters, cursor, > context) > File "/usr/local/lib/python2.6/dist-packages/sqlalchemy/engine/ > base.py", line 931, in _handle_dbapi_exception > raise exc.DBAPIError.instance(statement, parameters, e, > connection_invalidated=is_disconnect) > OperationalError: (OperationalError) no such table: __main___test > u'INSERT INTO __main___test (name) VALUES (?)' ['network'] > > > And here is the code > > #!/usr/bin/env python > ######################################################################## > # > # > # MODEL > # > # > # > ######################################################################## > from elixir import * > > global session, metadata > metadata.bind = 'sqlite:///:memory:' > metadata.echo = True > > class Test(Entity): > """ ORM for Tests. """ > id = Field(Integer, primary_key = True) > name = Field(Unicode(50), required = True) > questions = OneToMany('Question') > > def __init__(self,name): > > """ Accepts a name for a test """ > #TODO: Ensure valid input > self.name = name > > class Question(Entity): > """ ORM for Questions. """ > id = Field(Integer, primary_key = True) > question = Field(UnicodeText, required = True) > test = ManyToOne('Test') > answers = OneToMany('Answer') > > def __init__(self,test_id, question): > """ Accepts a test_id and a question to sign that test """ > #TODO: Ensure valid input > > self.question = question > > class Answer(Entity): > """ ORM for Answers. """ > id = Field(Integer, primary_key = True) > answer = Field(UnicodeText, required = True) > correct = Field(Unicode(1), required = True) # y for correct n for > not > question = ManyToOne('Question') > > def __init__(self,question_id,answer,correct=0): > """ Accepts a question_id and a answer to assign to that > question. > Optionally it accepts correct, y for correct, n for not > Default for correct is n""" > #TODO: Ensure vaild input > > self.answer = answer > self.correct = correct > > setup_all() > create_all() > > ######################################################################## > # > # > # VIEW/CONTROLLER > # > # Will Seperate Later > # > # > # > ######################################################################## > > import cherrypy > > class WebTest(object): > """ Cherrypy server root """ > > def header(self): > """ Defines a header to be used for web pages... Should be > temporary """ > return '<html><head><title>pyWebTest</title></head><body>' > > def footer(self): > """ Defines a footer to be used for web pages... Should also > be temporary """ > return '</body></html>' > > @cherrypy.expose() > def index(self): > """ Root page for pyWebTest server """ > output = 'BEGIN<br />' > test = Test('network') > output = output + 'The test ' + test.name + ' has been > initialized!<br />' > test1 = Test('A+') > output = output + str(session.new)+ '<br />' > output = output + str(session.dirty) + '<br />' > session.flush() > session.commit() > if test.id >=0: > output = output + 'Test has been added<br />' > output = output + str(test1.id) + '<br />' > #session.query(Test).all() > #session.query(Test).filter(Test.name.in_(['network > +','fake'])).all() > output = output + 'DONE <br />' > return self.header() + output + self.footer() > > def main(): > cherrypy.quickstart(WebTest()) > return 0 > > if __name__ == '__main__': main() > > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---