If anyone out there has already implemented a custom DictOfLists
collection class to map scalar keys to lists of values, I would be
grateful for the opportunity to avoid reinventing the wheel.  If not,
I guess I'll start working on it.

I've experimented successfully with attribute_mapped_collection and
column_mapped_collection and they work just great.  However, instead
of mapping keys to single values, I need some of my mapper relations
to map to a list of values.

Here is more of the picture, for example.

foos = Table('foos', metadata,
    Column('id', Integer, primary_key=True),
    Column('name', String(20)))

bars = Table('bars', metadata,
    Column('id', Integer, primary_key=True),
    Column('foo_id', Integer, ForeignKey('foos.id')),
    Column('value', String(20)),
    Column('parent_id', Integer, ForeignKey('bars.id')))

class Foo(object): pass
class Bar(object): pass

mapper(Foo, foos)

mapper(Bar, bars, properties={
    'foo':relation(Foo, uselist=False, backref='bars'),
    'children':relation(Bar,
                backref=backref('parent',
                                        remote_side=[bars.c.id]))
})


... So we have a relation of 1 Foo : many Bars.  And within the Bars
we also have 'adjacency' (tree-like) relations between the various
rows of the 'bars' table.  A Bar's children are kept in the standard
list-like collection class.

But what I really need is a *dict* instead of a list.  Ok, SA already
takes care of that.  But I actually need a list-like collection to
appear as the value for each key in the dict.  Specifically, I need
each Bar to be able to have stored children *per Foo*.  And not keyed
by the parent's foo, but the child's foo.

Does that make sense?  I'll be working on this immediately, but if
anyone can shorten my path to getting this straight I'd be very glad.
I'm beginning to work out the use of a custom collection_class for
this, but I haven't done all that much with metaclassing and the way
forward isn't obvious (the SA instructions about this seem to assume
the programmer is pretty experienced with custom subclassing etc.)
--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to