Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 22, 2009 15:34:46

kawaikunee
От:
Зарегистрирован: 2009-05-06
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

SQLAlchemy, many-to-many, cascade

Прошу помощи.
Берем модель 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'))}
)
Как правильно сделать каскадное удаление, да так, чтобы удалились только те потомки, у которых больше нет родителей?
Читал, что каскады вроде-бы в таких раскладах работают через пень-колоду. Так у меня и было. Может быть, есть-таки рецепт?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version