El 01/06/12 16:59, Michael Bayer escribió:
@appender needs to be a method that just accepts a mapped object to be added to
the collection. then, @internally_instrumented is needed to prevent the
collections system from placing additional insturmentation on standard methods
like __setitem__. Also building custom dictionary collections is very
difficult in any case (for me as well) so you were close, and that's pretty
good !
A lot of thanks, Michael.. now it it works like a charm ;-)
class MyMappedCollection(dict):
def __init__(self, data=None):
if data:
self.update(data)
@collection.appender
def _add_perm(self, pobj):
l = dict.setdefault(self, pobj.permission, [])
l.append(pobj)
@collection.internally_instrumented
def __setitem__(self, permission, pobj):
self._add_perm(pobj)
@collection.remover
def _remove(self, perm):
self[perm.permission].remove(perm)
@collection.iterator
def __iter__(self):
for vals in self.itervalues():
for perm in vals:
yield perm
On Jun 1, 2012, at 9:38 AM, Antonio Beamud Montero wrote:
Hi all:
I'm trying to implement a permission system usign polymorphic associations. In
my example only one object has permissions associated (ULine).
The problem is trying to use a mapping with permission names as keys, and
values Permission objects with a 1:1 user relation.
A complete example here:
http://pastebin.com/SqCfBCFp
But I can't get this working, the next error is raised:
child_state, child_dict = instance_state(child), \
AttributeError: 'list' object has no attribute '_sa_instance_state'
A lot of thanks.
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@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.
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@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.