Hi, I've been using SQLAlchemy since a month. I'm having some
problems with a one-to-many relationship. I have 2 tables: one for
users and one for users's emails. The problem arises when I want to
put a timestamp in the email table in order to see when a given
account was created. Here are the tables, my code, and the error:
User Table:
CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
Email Table:
CREATE TABLE `email` (
`id` int(11) NOT NULL auto_increment,
`email` varchar(100) default NULL,
`user_id` int(11) NOT NULL,
`last_modified` timestamp NOT NULL default CURRENT_TIMESTAMP on
update CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_user_id` (`user_id`),
CONSTRAINT `fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `user`
(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
##########CODE############
user_table = Table('user', metadata, autoload=True)
email_table = Table('email', metadata, autoload=True)
class User(object):
pass
class Email(object):
pass
session_context = SessionContext(create_session)
assign_mapper(session_context, User, user_table,
properties={'emails':relation(Email)})
assign_mapper(session_context, Email, email_table)
obj = User()
obj.get(1).emails
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/usr/lib/python2.3/site-packages/sqlalchemy/orm/
attributes.py", line 53, in __get__
return self.get(obj)
File "/usr/lib/python2.3/site-packages/sqlalchemy/orm/
attributes.py", line 217, in get
values = callable_()
File "/usr/lib/python2.3/site-packages/sqlalchemy/orm/
strategies.py", line 222, in lazyload
result = session.query(self.mapper,
with_options=options).select_whereclause(self.lazywhere,
order_by=order_by, params=params)
File "/usr/lib/python2.3/site-packages/sqlalchemy/orm/query.py",
line 309, in select_whereclause
return self._select_statement(statement, params=params)
File "/usr/lib/python2.3/site-packages/sqlalchemy/orm/query.py",
line 798, in _select_statement
return self.execute(statement, params=params, **kwargs)
File "/usr/lib/python2.3/site-packages/sqlalchemy/orm/query.py",
line 694, in execute
result = self.session.execute(self.mapper, clauseelement,
params=params)
File "/usr/lib/python2.3/site-packages/sqlalchemy/orm/session.py",
line 183, in execute
return self.connection(mapper,
close_with_result=True).execute(clause, params, **kwargs)
File "/usr/lib/python2.3/site-packages/sqlalchemy/engine/base.py",
line 444, in execute
return Connection.executors[c](self, object, *multiparams,
**params)
File "/usr/lib/python2.3/site-packages/sqlalchemy/engine/base.py",
line 484, in execute_clauseelement
return self.execute_compiled(elem.compile(engine=self.__engine,
parameters=param), *multiparams, **params)
File "/usr/lib/python2.3/site-packages/sqlalchemy/engine/base.py",
line 503, in execute_compiled
proxy(str(compiled), parameters)
File "/usr/lib/python2.3/site-packages/sqlalchemy/engine/base.py",
line 499, in proxy
self._execute_raw(statement, parameters, cursor=cursor,
context=context)
File "/usr/lib/python2.3/site-packages/sqlalchemy/engine/base.py",
line 547, in _execute_raw
self._execute(cursor, statement, parameters, context=context)
File "/usr/lib/python2.3/site-packages/sqlalchemy/engine/base.py",
line 566, in _execute
raise exceptions.SQLError(statement, parameters, e)
sqlalchemy.exceptions.SQLError: (ValueError) invalid literal for
int(): 7- 'SELECT email.last_modified AS email_last_modified,
email.user_id AS email_user_id, email.id AS email_id, email.email AS
email_email \nFROM email \nWHERE %s = email.user_id ORDER BY
email.id' [1L]
Sorry for putting too much data, but I'm a little desperate, I've
been trying to do this for a whole week and I can't find useful
information about this error. I only found that this exception is
when a query is not very well formed or something like that. Please
help me as soon as you can, thanks in advance for reading this post.
regards,
Roberto Zapata
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---