Hello, You should try using the post_update argument on that relationship. The use_alter flag solve the problem only at the table creation time, but you need to solve it at "data-input" time.
See: http://www.sqlalchemy.org/docs/04/sqlalchemy_orm.html#docstrings_sqlalchemy.orm_modfunc_relation for details. Hope this helps, On 10/10/07, n-org <[EMAIL PROTECTED]> wrote: > > And again, sorry. > > That does *not* actually work. It seems to work some of the time, but > I still get an exception some of the time. So, any ideas? > > On Oct 9, 8:45 pm, n-org <[EMAIL PROTECTED]> wrote: > > Sorry to reply to myself, but I found that if I do a > > database.session.flush() in between creating the address and setting > > it to be the primary, it gets rid of the exception. > > > > (But as a feature request, it might be nice if Elixir/SA could avoid > > it automatically in cases like this. Maybe if some attribute is true, > > it could break the edge in the topological sort, so the Person op was > > performed first and then use an ALTER statement to update the second > > relationship.) > > > > On Oct 9, 8:41 pm, n-org <[EMAIL PROTECTED]> wrote: > > > > > Hi, > > > > > I'm using Elixir with Turbogears. > > > > > I have a model which has an object that has a one-to-many and then a > > > belongs_to to set which of the many is primary: > > > > > Person > > > has_many('addresses', of_kind='Address', inverse='owner') > > > belongs_to('primary_address', of_kind='Address', use_alter=True) > > > > > Address > > > belongs_to('owner', of_kind='Person', inverse='photos') > > > > > I thought that the use_alter=True would prevent circular reference > > > problems. But, when I try to insert a new address, I get: > > > > > File "/Library/Frameworks/Python.framework/Versions/2.5/lib/ > > > python2.5/site-packages/SQLAlchemy-0.3.10-py2.5.egg/sqlalchemy/ > > > topological.py", line 225, in sort > > > raise CircularDependencyError("Circular dependency detected " + > > > repr(edges) + repr(queue)) > > > CircularDependencyError: Circular dependency detected > > > > > I _could_ change Address to have a has_field('is_primary', Boolean), > > > but this would add an extra join and a huge amount of complexity to > > > some code I have elsewhere, so I'd like to avoid it. > > > > > Is there any way I can avoid getting the CircularDependencyError? > > > > > Thank you very much--I'm loving SA/Elixir so far. > > > > > -- 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 -~----------~----~----~----~------~----~------~--~---
