Hier ist, was ich habe:
from sqlalchemy import *
from sqlalchemy.orm import *
from web.models.card import *
connectionString = "postgresql://www:www@localhost/prod"
databaseEngine = create_engine(connectionString)
sessionFactory = sessionmaker(autoflush = True, autocommit = False, bind = databaseEngine)
session = sessionFactory()
CardsCollection = session.query(card).all()
_content = {}
for index in range(0, len(CardsCollection)):
c = CardsCollection[index]
_content[index] = c
print json.dumps(_content)
Und hier liegt der Fehler:
Traceback (most recent call last):
File "/home/src/py/raspberry/src/dictionaryTest.py", line 15, in
CardsCollection = session.query(card).all()
File "/usr/local/lib/python2.6/dist-packages/sqlalchemy/orm/query.py", line 1453, in all
return list(self)
File "/usr/local/lib/python2.6/dist-packages/sqlalchemy/orm/query.py", line 1676, in instances
rows = [process[0](row, None) for row in fetch]
File "/usr/local/lib/python2.6/dist-packages/sqlalchemy/orm/mapper.py", line 2234, in _instance
populate_state(state, dict_, row, isnew, only_load_props)
File "/usr/local/lib/python2.6/dist-packages/sqlalchemy/orm/mapper.py", line 2113, in populate_state
populator(state, dict_, row)
File "/usr/local/lib/python2.6/dist-packages/sqlalchemy/orm/strategies.py", line 127, in new_execute
dict_[key] = row[col]
TypeError: 'instancemethod' object does not support item assignment
Kann mir jemand bei dieser Frage helfen? Ich habe versucht, ein paar Dinge, und recherchiert, wie Wörterbücher funktionieren ... aber seine einfach nicht springen auf mich.
[Bearbeiten für seltsame Auflösung] Offensichtlich wird das Überschreiben der self.__dict__(self)
Methode des Kartenmodells ist die Ursache dafür. Ich bin mir allerdings nicht ganz sicher, warum.