Добрый день!
Пытаюсь освоить Flask. Из коробки, документация внятная и понятная, но мне понадобилось в базе в таблице sessions хранить помимо штатных для flask_sessions данных несколько собственных полей.
Вот модель которую я создал:
class Sessions(db.Model):
__table_args__ = { 'extend_existing': True }
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable = True)
room_id = db.Column(db.Integer, db.ForeignKey('room.id'), nullable = True)
Теперь мне необходимо обновить user_id.
По идее, мне нужно знать id записи в БД.
Не могу сообразить как до него добраться.
Пробовал добраться до id так:
print(app.session_interface.sql_session_model.id)
но на выходе получаю:
Sessions.id
В общем я ожидал, что будет выглядеть как-то вроде:
session.user_id = 1
session.commit()
Но видимо не всё так просто(
Собственно вопрос:
Как правильно изменить в БД, поле user_id для текущей сессии?
UPD:
Я нашёл решение, но мне кажется должно быть что-то более правильное чем это:
row = db.session.query(Sessions).filter_by(session_id = 'session:%s'%session.sid).first()
row.user_id = 1
db.session.commit()