Добавлять только новые объекты с каскадом? - PullRequest
1 голос
/ 12 января 2012

Интересно, можно ли добавлять только новые дочерние объекты в базу данных при использовании отношения родитель-ребенок. То есть, когда вы добавляете Parent, каскад должен автоматически добавлять только те (новые) дочерние элементы, которые сейчас не находятся в Базе данных, то есть являются постоянными. Можете ли вы переопределить метод add для детей, чтобы проверить это условие, или есть какой-нибудь удобный обходной путь для этого?

1 Ответ

3 голосов
/ 13 января 2012

Вы должны использовать Events для добавления объекта.Просто создайте один слушатель для события добавления или создайте событие и отслеживайте свои данные.Вы можете фильтровать дату по этим базам.

Вы можете использовать код как

from sqlalchemy import event

def child_append_listener(target, value, initiator):
    print "received append event for target: %s" % target

event.listen(Parent.children, 'append', child_append_listener)
...