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