简体   繁体   中英

FLask-admin , generatable fields

There is a model

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 generate this form for this model click here

Problem: when i create new record, url field is empty.

You can override flask-admin save method, like this:

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)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM