Not sure if this will help when I teach myself. But I had a similar problem when I wanted to display a column from the "foreignkey" table and did it like this:
My modle.py
from app import db class Member(db.Model): __tablename__ = 'members' id = db.Column(db.Integer, primary_key=True, autoincrement=True) name = db.Column(db.String(64), index=True) phone = db.Column(db.String(10), index=True) email = db.Column(db.String(120), index=True, unique=True) grade = db.relationship('Grade', backref='member') attendance = db.relationship('Attendance', backref='member') def __repr__(self): return '<User %r>' % self.name class Grade(db.Model): __tablename__ = 'grades' id = db.Column(db.Integer, primary_key=True, autoincrement=True) member_id = db.Column(db.Integer, db.ForeignKey('members.id')) grade = db.Column(db.String(10)) grade_date = db.Column(db.Date) def __repr__(self): return '<Grading %r>' % self.id def __str__(self): return self.grade def __unicode__(self): return self.grade class Attendance(db.Model): __tablename__ = 'attendance' id = db.Column(db.Integer, primary_key=True, autoincrement=True) id_member = db.Column(db.Integer, db.ForeignKey('members.id')) attend_date = db.Column(db.Date) def __repr__(self): return '<Attenance %r>' % self.id
my views.py
from app.models import Member, Grade, Attendance from app import app, admin, db from flask_admin import BaseView, expose from flask_admin.contrib.fileadmin import FileAdmin from flask_admin.contrib.sqla import ModelView import os.path as op class AdminView(ModelView): column_display_pk = True
As I donβt know what I am doing (for now) I think that the bit that allows me to see the columns for my member model with the added extra column that came from the Grade model are these lines in the MemberAdmin (ModelView) class:
column_hide_backrefs = False can_view_details = True ... form_columns = ['name', 'phone', 'email', 'grade', 'attendance']
source share