Есть свойства для сеанса, и вы можете проверить, что произойдет в базе данных.Сессия имеет new
: для объектов, которые будут добавлены в базу данных, и dirty
: для объектов, которые будут обновляться:
t1 = Ticket(token, ticket_num, None, None, batch_num)
t2 = Ticket(token, ticket_num, None, None, batch_num)
t3 = Ticket.query.filter_by(token='Something to match').first()
t3.token = 'Something new'
db.session.add_all([t1, t2, t3])
# check for new
>>> db.session.new
IdentitySet([<Ticket (transient 140452313747240)>, <Ticket (transient 140452278620112)>])
# check updates
>>> db.session.dirty
>>>db.session.dirty
IdentitySet([<Ticket 2>]) # 2 is ticket id for me
Вы можете проверить длину курса: len(db.session.new)
Обратите внимание, что это доступно до фиксации, но вы будете знать, сколько элементов было добавлено и обновлено.