Błąd sesji SQLAlchemy

Tło: Flask / Flask-SQLAlchemy / Flask-WTF, używając sesji deklaratywnej i ograniczonej

ProstyPOST operacja:

@tas.route('/order_add', methods=['GET', 'POST'])  
def tas_order_add():  
    if request.method == 'POST':
        order_form = OrderForm()
        if order_form.validate_on_submit():
            order = Order()
            order_form.populate_obj(order)
            db_session.add(order)
            db_session.commit()

Teraz próbuję go uruchomić, pojawia się błąd:

InvalidRequestError: Object '' jest już dołączony do sesji „1” (jest to „2”)

Zmiana dodawania do scalenia rozwiązuje problem, ale:

Nie wiem, dlaczego muszę scalać obiekt, gdy go zainicjowałem

Jeśli zmienię, dodaj do scalenia i spróbuj zdefiniować jedną z właściwości w linii

order = Order()
order_form.populate_obj(order)
order.order_status = OrderStatus.query.filter(OrderStatus.code=='PLACED').first()
db_session.merge(order)
db_session.commit()

Otrzymuję ten sam błąd, właśnie teraz w obiekcie OrderStatus

InvalidRequestError: Object '' jest już dołączony do sesji „2” (jest to „1”)

Czy ktoś może mi wskazać, gdzie robię coś złego, ponieważ doprowadza mnie to do szału. Mam pewne doświadczenie z SQLAlchemy, ale po raz pierwszy widzę takie zachowanie i nie mogę zidentyfikować problemu.

Przeszukiwanie wszystkiego, co znalazłem, było problemem z inicjalizacją sesji podwójnej bazy danych, ale nie wierzę, że to przypadek.

EDYTOWAĆ

db_session jest zdefiniowany w oddzielnym pliku database.py z następującą treścią

from sqlalchemy.engine import create_engine
from sqlalchemy.ext.declarative.api import declarative_base
from sqlalchemy.orm.scoping import scoped_session
from sqlalchemy.orm.session import sessionmaker

engine = create_engine('sqlite:///fundmanager_devel.db', convert_unicode=True)
db_session = scoped_session(sessionmaker(autocommit=False,
                                         autoflush=False,
                                         bind=engine))
Base = declarative_base()
Base.query = db_session.query_property()

questionAnswers(3)

yourAnswerToTheQuestion