Напрямую обновите класс SQLAlchemy и получите экземпляр

#python #sqlalchemy

#python #sqlalchemy

Вопрос:

Я хочу напрямую обновить свой класс sqlalchemy, а затем вставить изменения в базу данных и вернуть идентификатор, который был недавно вставлен. Ниже приведен код, который я пытаюсь заставить работать.

 Series.is_forfeited = is_forfeited
Series.start_date_time =date_time
Series.is_finished = is_finished
Series.is_live = is_live

instance = 'Convert newly updated object to instance'
session.add(instance)


session.commit()
id = instance.id
  

Ответ №1:

Похоже, вы не инициализируете свой экземпляр. Попробуйте это:

 instance = Series()
instance.is_forfeited = is_forfeited
instance.start_date_time =date_time
instance.is_finished = is_finished
instance.is_live = is_live

session.add(instance)

# optional: flush before you commit to get the ID without
# closing the transaction
session.flush()

# also, don't use the variable name `id` as 
# id is a builtin function and you're overriding it.
my_id = instance.id

# when you're ready, you can commit your transaction
session.commit()