SQLAlchemy использовать объект модели после вставки - PullRequest
0 голосов
/ 30 января 2019

Я хотел бы использовать мой объект модели после вставки в БД, потому что он находится в действительно удобном формате.Я попробовал следующее:

@app.route("/user", methods=["POST"])
def create_user():
    with db.session_scope() as session:
        user = User(
            name=request.form["name"],
            gender=request.form.get("gender")
        )
        session.add(user)
        session.flush()

    return json.dumps(user, cls=ModelEncoder)

Почему-то я не могу использовать объект user после фиксации сеанса (это в основном то, что происходит при закрытии блока with. Есть ли способ сделать это? Вернотеперь он выдает:

sqlalchemy.orm.exc.DetachedInstanceError: Instance <User at 0x258b19a9978> is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: http://sqlalche.me/e/bhk3)

в последней строке примера

1 Ответ

0 голосов
/ 30 января 2019

Включая session.expunge (пользователь) после того, как сброс сделал свое дело.Не думал, что это сработает, потому что это было до коммита, но он сделал

...