1. is Winracku.combrack intended to be many-to-one or one-to-many ?

2. Given w1, w2:

w1 = Winracku()
w2 = Winracku()
w1.combrack = w2

which one are you deleting first, and what is the desired behavior as a result?




On Apr 9, 2013, at 8:29 AM, Werner <werner.bru...@sfr.fr> wrote:

> On 09/04/2013 13:18, Werner wrote:
>> On 09/04/2013 12:56, Werner wrote:
>>> Hi,
>>> 
>>> On 01/03/2013 15:59, Werner wrote:
>>>> Hi,
>>>> 
>>>> Found it in the doc, the "Adjacency List Relationship" is what I wanted.
>>>> 
>>>> http://docs.sqlalchemy.org/en/latest/orm/relationships.html#adjacency-list-relationships
>>>>  
>>> I am having a problem when I try to delete an item where I use this, I get 
>>> this exception: ...
>> ...
>>> Do I have to manually clear out the foreign keys first or can I fix it by 
>>> correctly setting things in the model?
>>> 
>>> I currently have:
>>> 
>>> StandardColumnMixin creates the "id" and date/user creation/update columns.
>>> 
>>> class Winerack(DeclarativeBase, mix.StandardColumnMixin):
>>>    __tablename__ = u'winerack'
>>> 
>>>    name = sa.Column(sa.Unicode(length=30))
>>> ...
>>> 
>>> class Wineracku(DeclarativeBase, mix.StandardColumnMixin):
>>>    __tablename__ = u'wineracku'
>>> 
>>>    description = sa.Column(sa.Unicode(length=30))
>>> ...
>>>    fk_winerack_id = sautils.reference_col('winerack')
>>> 
>>>    fk_combrack_id = sa.Column(cts.KEYS, sa.ForeignKey('wineracku.id'))
>>> 
>>> Winerack.wineracku = sao.relationship('Wineracku', backref='winerack',
>>>                                      cascade="all, delete, delete-orphan")
>>> Wineracku.winerackb = sao.relationship('Winerackb', backref='wineracku',
>>>                                       cascade="all, delete, delete-orphan")
>>> Wineracku.combrack = sao.relationship('Wineracku', 
>>> remote_side=[Wineracku.id],
>>>                                      cascade="all, delete, delete-orphan",
>>>                                      single_parent=True)
>>> 
>> I think I found it, adding a backref to the combrack relationship like this:
>> Wineracku.combrack = sao.relationship('Wineracku', backref='winerackucomb',
>>                                      remote_side=[Wineracku.id],
>>                                      cascade="all, delete, delete-orphan",
>>                                      single_parent=True)
>> 
>> Seems to work, need to test this some more.
> Seems to isn't good enough(:.
> 
> I don't get an error any more but on delete not everything is deleted.
> 
> So, I am still searching how to setup the "Adjacency List Relationship" 
> correctly so it works for me on deleting a parent of the list.
> 
> Any tips or links to further reading would be very appreciated.
> 
> Werner
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sqlalchemy+unsubscr...@googlegroups.com.
> To post to this group, send email to sqlalchemy@googlegroups.com.
> Visit this group at http://groups.google.com/group/sqlalchemy?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
> 
> 

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to