flask-sqlalchemy:数据库设计-如何使用函数的返回值作为列的默认值?

时间:2019-06-25 22:07:08

标签: python sqlalchemy

我已使用flask-sqlalchemy为我的数据库创建模型

class User(db.Model, UserMixin):
    """A user who has an account on the website."""
    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    first_name = db.Column(db.String, nullable=False)
    last_name = db.Column(db.String, nullable=False)

    # here are some irrelatvant columns ...

    image_file = db.Column(db.String, nullable=False, default='default.jpg')

我将用户个人资料图片的默认图像作为硬编码图像保存在static/img文件夹中。但是,我想使用通过用户电子邮件的哈希版本创建github默认风味个人资料图片的gravatar。

我有功能

def avatar(self, size=128):
    digest = md5(self.email.lower().encode('utf-8')).hexdigest()
    return 'https://www.gravatar.com/avatar/{}?d=identicon&s={}'.format(digest, size)

我想将avatar()函数的返回值用作默认图像。我试图将avatarself.avatar传递为default=的参数。但是,它们都不起作用。

0 个答案:

没有答案