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
-~----------~----~----~----~------~----~------~--~---

Reply via email to