demas
Почему 2? Поле где “two” это вообще первичный ключ.
(*1*) print id
orig = session.query(Product).filter(Product.name==id).first()
(*2*) print orig.name
demas
Здесь просто считываются поля из интерфейса и порождается объект.
Но он не является у тебя (в таком состоянии, содя по коду) элементом базы и, как минимум, не подвязан к сесси. Вот после такого кода, он будет находится в базе и сесси и ты сможешь его удалить (код относится к SQLAlchemy 0.5, в ранних версиях небыло метода
add, он заменил собой
save):
s = Session()
s.add(product)
s.flush() # и/или s.commit(), если используешь транзакции
Всё, без создания новой сессии и без запроса product в базе, ты можешь обращаться к product:
s.delete(product)
s.flush() # и/или s.commit(), если используешь транзакции
s.close()
p.s. Опять же, точно не скажу, но кажется нет необходимости делать первый flush, что бы удалить объект. Если, конечно ты не хочешь что бы объект всё же отразился в БД.
..bw