【问题标题】:Get primary key from SqlAlchemy before commit the object在提交对象之前从 SqlAlchemy 获取主键
【发布时间】:2017-01-19 20:06:52
【问题描述】:

我一直在使用带有 postgres 的 sqlalchemy,但不知道如何解决下面的问题。

我想在提交到数据库之前获取主键的值。

我有一个名为 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。

最好的方法是什么?

对不起我的英语:/

谢谢

【问题讨论】:

    标签: python postgresql python-3.x sqlalchemy


    【解决方案1】:

    您可以使用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()
    

    【讨论】:

      猜你喜欢
      • 2010-10-11
      • 2014-06-18
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2012-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多