Yeah, that's the only reliable method currently. Thanks for digging in the mailing list archive for the answer! I've had an answer to DanL message in my draft folder for quite a while now (no idea why I didn't send it when I wrote it :-/).
I'll definitely need to address this in a FAQ or even the tutorial given the number of people who trip on this... On Wed, Apr 30, 2008 at 10:56 AM, Yap Sok Ann <[EMAIL PROTECTED]> wrote: > > On Apr 30, 11:32 am, Yap Sok Ann <[EMAIL PROTECTED]> wrote: > > The model below doesn't seem to work with any of the import methods > > laid out in this discussion and in the wiki. It has an "odd many-to- > > many relationship" which is modeled following Gaeten's suggestion > inhttp://www.mail-archive.com/[EMAIL PROTECTED]/msg02616.html > > > > > man.py > > ------ > > from elixir import Entity, Field, Unicode, has_many > > > > class Man(Entity): > > name = Field(Unicode(10)) > > has_many('relationships', of_kind='Relationship') > > def __repr__(self): > > return '<Man \'%s\'>' % (self.name) > > > > woman.py > > -------- > > from elixir import Entity, Field, Unicode, has_many > > > > class Woman(Entity): > > name = Field(Unicode(10)) > > has_many('relationships', of_kind='Relationship') > > def __repr__(self): > > return '<Woman \'%s\'>' % (self.name) > > > > relationship.py > > --------------- > > from elixir import Entity, Field, Unicode, belongs_to > > > > class Relationship(Entity): > > name = Field(Unicode(10)) > > belongs_to('man', of_kind='Man', required=True) > > belongs_to('woman', of_kind='Woman', required=True) > > def __repr__(self): > > return '<Relationship \'%s\'>' % (self.name) > > > > Tested under Elixir 0.5.2 > > I got it to work using full path addressing as mentioned by Gaeten in > > http://groups.google.com/group/sqlelixir/browse_thread/thread/bc8b23a1ae8bd9ec > > Dan, can you try if it works for you? Should work fine regardless of > how to structure the files or where to do the import. > > FWIW, here's what I have: > > model/__init__.py > ----------------- > > > model/man.py > > ------------ > from elixir import Entity, Field, Unicode, has_many > > class Man(Entity): > name = Field(Unicode(10)) > has_many('relationships', of_kind='model.relationship.Re > lationship') > has_many('women', through='relationships', via='woman') > > def __repr__(self): > return '<Man \'%s\'>' % (self.name) > > model/woman.py > > -------------- > from elixir import Entity, Field, Unicode, has_many > > class Woman(Entity): > name = Field(Unicode(10)) > has_many('relationships', > of_kind='model.relationship.Relationship') > has_many('men', through='relationships', via='man') > > def __repr__(self): > return '<Woman \'%s\'>' % (self.name) > > model/relationship.py > > --------------------- > from elixir import Entity, Field, Unicode, belongs_to > > class Relationship(Entity): > name = Field(Unicode(10)) > belongs_to('man', of_kind='model.man.Man', > inverse='relationships', required=True) > belongs_to('woman', of_kind='model.woman.Woman', > inverse='relationships', required=True) > > def __repr__(self): > return '<Relationship \'%s\'>' % (self.name) > > test.py > ------- > from elixir import Entity, setup_all > > from model.man import Man > from model.woman import Woman > from model.relationship import Relationship > > print Entity.__metaclass__._entities > > setup_all() > > > > > > -- Gaëtan de Menten http://openhex.org --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "SQLElixir" 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/sqlelixir?hl=en -~----------~----~----~----~------~----~------~--~---
