烧瓶管理员没有显示外键列(flask-admin not showing foreignkey co

2019-08-31 20:48发布

class Parent(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    name = db.Column(db.String(120))

    def __repr_(self):
        return '<Parent %r>' % (self.name)

admin.add_view(ModelView(Parent, db.session))


class Child(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    name = db.Column(db.String(120))
    parent = db.Column(db.Integer, db.ForeignKey(Parent))

admin.add_view(ModelView(Child, db.session))

你好 -

上面的代码是,我想创建烧瓶管理员页面的一个例子。 我们的目标是让孩子的创建页面上的名称文本框和一个下拉菜单选择父。

通过以上的设置,只有名称字段。 父下拉框丢失。

任何想法如何做到这一点?

Answer 1:

怎么样,如果你改变了Child类这样的:

class Child(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    name = db.Column(db.String(120))
    parent_id = db.Column(db.Integer, db.ForeignKey('parent.id'))
    parent = db.relationship('Parent', backref=db.backref('children', lazy='dynamic'))

我不知道很多关于这一点,我不知道你是否需要背参考,但这种设置对我的作品与瓶 - 管理。



Answer 2:

您可能需要通过子类来指定烧瓶管理员一些额外的选项:

class ChildView(ModelView):
    column_display_pk = True # optional, but I like to see the IDs in the list
    column_hide_backrefs = False
    column_list = ('id', 'name', 'parent')


admin.add_view(ChildView(Parent, db.session))


文章来源: flask-admin not showing foreignkey columns