2012-01-12 3 views
1

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

ответ

3

Для добавления объекта необходимо использовать 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)