0

定义模型时,我可以像这样生成 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 !!

我怎样才能做到这一点???

4

1 回答 1

0

您可以使用session.flush()来获取分配的主键。

db.session.add(blah)
db.session.flush()
blah.uuid = hashids.encode(blah.id)
db.session.add(blah)        
db.session.commit()
于 2016-11-18T16:14:28.530 回答