在定义模型时,我可以像这样生成uuid:
class Blah(Model):
id = Column(Integer, primary_key=True)
uuid = Column(String, default=lambda: str(uuid.uuid4()), unique=True)
但我想要的是基于主键生成hashid,类似这样(伪代码): (https://github.com/davidaurelio/hashids-python)
class Blah(Model):
id = Column(Integer, primary_key=True)
uuid = Column(String, default=lambda: Hashids().encode(pk_id), unique=True)
问题是我无法使用python函数内部生成的PK !!
我怎样才能实现呢???
答案 0 :(得分:0)
您可以使用session.flush()
获取已分配的主键。
db.session.add(blah)
db.session.flush()
blah.uuid = hashids.encode(blah.id)
db.session.add(blah)
db.session.commit()