Прошу помощи.
Берем модель many-to-many, классический вариант.
articles=sa.Table('articles',meta.metadata,
sa.Column('id',sa.types.Integer,primary_key=True,autoincrement=True,nullable=False),
sa.Column('name',sa.types.String(255),default=u'',nullable=False),
)
news=sa.Table('news',meta.metadata,
sa.Column('id',sa.types.Integer, primary_key=True, autoincrement=True,nullable=False),
sa.Column('name',sa.types.String(255),default=u'',nullable=False),
)
news_tag=sa.Table('news_tag',meta.metadata,
sa.Column('new_id',sa.types.Integer,sa.ForeignKey('news.id'),nullable=False,default=0),
sa.Column('article_id',sa.types.Integer,sa.ForeignKey('articles.id'),nullable=False,default=0),
)
class Articles(object):
def __repr__(self):
return self.name
class News(object):
def __repr__(self):
return self.name
orm.mapper(Articles,articles)
orm.mapper(
News,news,
properties={'articles':orm.relation(Articles,secondary=news_tag,backref=orm.backref('news'))}
)
Как правильно сделать каскадное удаление, да так, чтобы удалились только те потомки, у которых больше нет родителей?
Читал, что каскады вроде-бы в таких раскладах работают через пень-колоду. Так у меня и было. Может быть, есть-таки рецепт?