Я использую flask-sqlalchemy. Мой класс:
class Game(db.Model):
userid = db.Column(db.Integer, primary_key=True)
gameid = db.Column(db.Integer, primary_key=True)
gameid в базе данных настроен на автоматическое приращение.
Когда я запускаю эту функцию:
@app.route("/requestgame")
def requestgame():
game = Game()
game.userid = session["userid"]
db.session.add(game)
db.session.commit()
session["gameid"] = game.gameid
return "gameid {}".format(game.gameid)
Я получаю сообщение «ObjectDeletedError: Instance» был удален или его строка отсутствует ».
Как мне вернуть gameid?
Похоже, здесь кто-то задал тот же вопрос об обычном SQLAlchemy: SQLAlchemy Obtain Primary Ключ с автоинкрементом перед фиксацией, но я попробовал рекомендованное решение (вызов session.flush()
), и это, похоже, не имеет никакого значения.
db.sessions.flush()
, верно? - person Paolo Casciello   schedule 03.02.2014db.session.flush()
.db.sessions.flush()
выдает ошибку"AttributeError: 'SQLAlchemy' object has no attribute 'sessions'"
. - person matthewk   schedule 03.02.2014