Hi,
I created a custom type that represents a string as list of int(elements),
e.g.:
"2222" <-> [2, 2, 2, 2]
The class I created looks as follows:
class IntList(types.TypeDecorator):
"""List of integers that is represented by string in the RDB"""
impl=String
def process_bind_param(self, value, engine):
if value == [] or value is None:
return None
else:
return ''.join((str(x) for x in value))
def process_result_value(self, value, engine):
if value is None:
return []
else:
return [int(x) for x in value]
This data type is then used in one of my tables, which is represented by an
object.
The problem I have is that changing items in the list seems not to trigger SA,
so that a session.flush() does not perform an update, e.g.
myobj.intlist[0] = 8
When I, however, do the following, it works:
l = list(myobj.intlist)
l[0] = 8
myobj.intlist = l
On the other hand, the following does not:
myobj.intlist[0] = 8
l = list(myobj.intlist)
myobj.intlist = l
Can please someone enlighten me why this happens, and what I can do about it?
Best Regards,
Hermann
--
[EMAIL PROTECTED]
GPG key ID: 299893C7 (on keyservers)
FP: 0124 2584 8809 EF2A DBF9 4902 64B4 D16B 2998 93C7
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---