flask-admin не показывает столбцы foreignkey

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))

Привет

приведенный выше код является примером страницы Flask-admin, которую я пытаюсь создать. Цель состоит в том, чтобы иметь на странице создания ребенка текстовое поле для имени и раскрывающегося списка для выбора родителя.

при вышеуказанной настройке есть только поле name. Родительский раскрывающийся список отсутствует.

есть идеи, как это сделать?

2 ответов


Как насчет того, если вы измените 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'))

Я мало знаю об этом, и я не знаю, нужна ли вам задняя ссылка, но эта настройка работает для меня с Flask-Admin.


вероятно, вам нужно указать некоторые дополнительные параметры для Flask-admin через подкласс:

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))