Michele Gambella
unread,May 13, 2008, 6:01:39 AM5/13/08Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to TurboGears
Dear Sirs,
I am facing a problem with an sqlachemy query in a turbogears project,
running on a windows xp, i386 machine.
The extract of the model file is:
#---------------------------------------------------------------------------------------------------------
tabella_operazioni = Table('operazioni', metadata,
Column('operazione_id', Integer,
primary_key=True),
Column('descrizione', Unicode(255)),
Column('data', Date),
Column('importo', Unicode(255)),
Column('contatto_id', Integer,
ForeignKey('contatti.contatto_id')),
Column('divisione_id', Integer,
ForeignKey('divisioni.divisione_id'))
)
tabella_conti = Table('conti', metadata,
Column('conto_id', Integer, primary_key=True),
Column('descrizione', Unicode(255)),
Column('data', Date),
Column('importo', Unicode(255)),
Column('operazione_id', Integer,
ForeignKey('operazioni.operazione_id'))
)
class Operazione(object):
def __init__(self, **kw):
self.divisione_id = kw['divisione_id']
self.descrizione = kw['descrizione']
self.contatto_id = kw['contatto_id']
self.data = kw['data']
self.importo = kw['importo']
class Conto(object):
def __init__(self, **kw):
self.descrizione = kw['descrizione']
self.data = kw['data']
self.importo = kw['importo']
self.operazione_id = kw['operazione_id']
mapper(Operazione, tabella_operazioni, properties={
'conti':relation(Conto, backref='operazione')
})
mapper(Conto, tabella_conti)
#---------------------------------------------------------------------------------------------------------
While my project was running, I launched the "tg-admin shell" command
and then I issued the following commands:
>>> operazioni = session.query(model.Operazione).all()
>>> operazioni
[<myerp.model.Operazione object at 0x01795A70>,
<myerp.model.Operazione object at 0x01795CB0>, <myerp.model.Operazione
object at 0x017A4E70>]
>>> a = operazioni[0]
>>> a
<myerp.model.Operazione object at 0x01795A70>
>>> a.conti
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "C:\Programmi\Python25\lib\site-packages\sqlalchemy-0.4.4-
py2.5.egg\sqlalchemy\orm\attributes.py", line 44, in __get__
return self.impl.get(instance._state)
File "C:\Programmi\Python25\lib\site-packages\sqlalchemy-0.4.4-
py2.5.egg\sqlalchemy\orm\attributes.py", line 279, in get
value = callable_()
File "C:\Programmi\Python25\lib\site-packages\sqlalchemy-0.4.4-
py2.5.egg\sqlalchemy\orm\strategies.py", line 483, in __call__
result = q.all()
File "C:\Programmi\Python25\lib\site-packages\sqlalchemy-0.4.4-
py2.5.egg\sqlalchemy\orm\query.py", line 860, in all
return list(self)
File "C:\Programmi\Python25\lib\site-packages\sqlalchemy-0.4.4-
py2.5.egg\sqlalchemy\orm\query.py", line 1007, in iterate_instances
rows.append(main(context, row))
File "C:\Programmi\Python25\lib\site-packages\sqlalchemy-0.4.4-
py2.5.egg\sqlalchemy\orm\query.py", line 955, in main
extension=context.extension,
only_load_props=context.only_load_props,
refresh_instance=context.refresh_instance
File "C:\Programmi\Python25\lib\site-packages\sqlalchemy-0.4.4-
py2.5.egg\sqlalchemy\orm\mapper.py", line 1363, in _instance
self.populate_instance(context, instance, row,
only_load_props=only_load_props, instancekey=identitykey, isnew=isnew)
File "C:\Programmi\Python25\lib\site-packages\sqlalchemy-0.4.4-
py2.5.egg\sqlalchemy\orm\mapper.py", line 1444, in populate_instance
selectcontext.exec_with_path(self, key, populator, instance, row,
ispostselect=ispostselect, isnew=isnew, **flags)
File "C:\Programmi\Python25\lib\site-packages\sqlalchemy-0.4.4-
py2.5.egg\sqlalchemy\orm\query.py", line 1549, in exec_with_path
return func(*args, **kwargs)
File "C:\Programmi\Python25\lib\site-packages\sqlalchemy-0.4.4-
py2.5.egg\sqlalchemy\orm\strategies.py", line 79, in new_execute
instance.__dict__[self.key] = row[self.columns[0]]
File "C:\Programmi\Python25\lib\site-packages\sqlalchemy-0.4.4-
py2.5.egg\sqlalchemy\engine\base.py", line 1341, in __getitem__
return self.__parent._get_col(self.__row, key)
File "C:\Programmi\Python25\lib\site-packages\sqlalchemy-0.4.4-
py2.5.egg\sqlalchemy\engine\base.py", line 1603, in _get_col
return processor(row[index])
File "C:\Programmi\Python25\lib\site-packages\sqlalchemy-0.4.4-
py2.5.egg\sqlalchemy\databases\sqlite.py", line 92, in process
tup = self._cvt(value, dialect)
File "C:\Programmi\Python25\lib\site-packages\sqlalchemy-0.4.4-
py2.5.egg\sqlalchemy\databases\sqlite.py", line 68, in _cvt
return time.strptime(value, self.__format__)[0:6] + (microsecond,)
File "C:\Programmi\Python25\lib\_strptime.py", line 330, in strptime
(data_string, format))
ValueError: time data did not match format: data=12/05/2008 fmt=%Y-
%m-%d
Why there is a ValueError? in the database every date is stored in
this format yyyy-mm-dd ...
Thanks in advance for your help.
Michele Gambella