Hi, This is my first time posting so I'll try my best not to mess up! First let me provide everyone with the necessary information.
I'm a beginner to both Python and SQLAlchemy. Version Info ========= OS: Mac OSX 10.5.8 Python: 2.6.4 SQLAlchemy: 0.5.8 ========= My Class ======= +++ class Student(object): def __init__(self, name, id): self.id = id self.name = name self.preferences = collections.defaultdict(set) self.own_proj_id = None self.own_proj_sup = None self.allocated_project = None self.allocated_rank = 0 def __repr__(self): return str(self) def __str__(self): return "%s %s" %(self.id, self.name) +++ Background ========= Now, I've got a function that reads in the necessary information from a text database into these objects. The function more or less works and I can easily access the information from the objects. Before the SQLAlchemy code runs, the function will read in the necessary info and store it into the Class. There is a dictionary called `students` which stores this as such: +++ students = {} students[id] = Student(<all the info from the various "reader" functions>) +++ Afterwards, there is an "allocation" algorithm that will allocate projects to student. It does that well enough. If a student already has his/her own project, the own_proj_id and own_proj_sup fields have numeric info. The allocated_project remains as None (but I suppose I can fix that to reflect the own_proj_id). Now if a student is unsuccessful in getting a project the following fields remain as None: own_proj_id, own_proj_sup and allocated_project. SQLAlchemy bit ============= So after all this happens, I'd like to map my object to a database table. Using the documentation, I've used the following code: +++ from sqlalchemy import * from sqlalchemy.orm import * engine = create_engine('sqlite:///:memory:', echo=False) metadata = MetaData() students_table = Table('studs', metadata, Column('id', Integer, primary_key=True), Column('name', String) ) metadata.create_all(engine) mapper(Student, students_table) Session = sessionmaker(bind=engine) sesh = Session() +++ Now after that, I was curious to see if I could print out all the students from my students dictionary. +++ for student in students.itervalues(): print student +++ What do I get but an error: +++ Traceback (most recent call last): File "~/FYP_Tests/FYP_Tests.py", line 140, in <module> print student File "/~FYP_Tests/Parties.py", line 30, in __str__ return "%s %s" %(self.id, self.name) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/ lib/python2.6/site-packages/SQLAlchemy-0.5.8-py2.6.egg/sqlalchemy/orm/ attributes.py", line 158, in __get__ return self.impl.get(instance_state(instance), instance_dict(instance)) AttributeError: 'NoneType' object has no attribute 'get' +++ I'm at a loss as to how to resolve this issue, if it is an issue. If more information is required, please ask and I will provide it. Kind regards, Az -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalch...@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.