我一直在使用sqlalchemy和postgres,不知道如何解决这个问题。
我希望在提交到DB之前获取主键的值。
我有一个名为process的类,它有proc_id和另一个名为proc_num的元素。
class process(db.Model):
__tablename__ = 'tb_processos'
proc_id = db.Column(db.Integer, primary_key=True, nullable=False,
autoincrement=True, unique=True)
proc_num = db.Column(db.String(20))
由于我的原因,proc_num必须是String类型。
当我创建我的对象时,我希望proc_num接收proc_id。
这样做的最佳方法是什么?
对不起我的英文:/
THX
答案 0 :(得分:3)
您可以使用flush()
方法,在您致电commit()
之前,更改不会永久保留到磁盘:
p = process(proc_num=45)
db.session.flush(p)
p = process.query.filter_by(proc_num=45)
p.proc_id
# finally you can call commit
db.session.commit()