Flask-admin ,可生成字段

FLask-admin , generatable fields

有模型

class Article(db.Model, Base):
    id = db.Column(db.Integer(), primary_key=True)
    title = db.Column(db.String())
    description = db.Column(db.Text())
    url = db.Column(db.String())

    created_on = db.Column(db.DateTime(), server_default=db.func.now())
    updated_on = db.Column(db.DateTime(), server_default=db.func.now(), onupdate=db.func.now())

    author = db.Column(db.Integer(), db.ForeignKey('user.id'))
    category = db.Column(db.Integer(), db.ForeignKey('category.id'))

    def __init__(self, title="", description="", author="", category=""):
        self.title = title
        self.author = author
        self.category = category
        self.description = description

        self.url = slugify(title)

flask-admin 为这个模型生成这个表单 click here

问题: 当我创建新记录时,url 字段为空。

您可以覆盖 flask-admin 保存方法,如下所示:

class Article(db.Model, Base):
        id = db.Column(db.Integer(), primary_key=True)
        title = db.Column(db.String())
        description = db.Column(db.Text())
        url = db.Column(db.String())

        created_on = db.Column(db.DateTime(), server_default=db.func.now())
        updated_on = db.Column(db.DateTime(), server_default=db.func.now(), onupdate=db.func.now())

        author = db.Column(db.Integer(), db.ForeignKey('user.id'))
        category = db.Column(db.Integer(), db.ForeignKey('category.id'))

        def save(self, *args, **kwargs):
             self.url = slugify(self.title)
             return super(Article, self).save(*args, **kwargs)