在 save/creation 的 SQL Alchemy 中为 Column 赋值

Assign value to Column in an SQL Alchemy upon its save/creation

我的数据库中有一个 class user,我想在每次创建新用户时分配 avatar_file_name 一个随机值,本质上是“保存”。我怎样才能做到这一点?

将从

中随机选择的数据数组
avatarImages = [
    "blue-dino_128.png",
    "brown-dino_128.png",
    "green-dino_128.png",
    "orange-dino_128.png",
    "pink-dino_128.png",
    "purple-dino_128.png",
  ]

这是 class,默认情况下它会从数组中选择一个随机字符串名称,但我认为有更好的方法来完成此操作。

class User(Base):
    __tablename__ = "user"

    id = Column(Integer, primary_key=True)
    first_name = Column(String(50), nullable=False)
    last_name = Column(String(50), nullable=True)
    avatar_file_name = Column(String(100), nullable=True, default=random.choice(avatarImages)
    

default=random.choice(avatarImages) 只执行一次,因此将为每个用户选择相同的值。要为每个用户随机选择,请在 lambda:

中调用 random.choice
default=lambda: random.choice(avatarImages)