我正在使用Flask-Admin来管理我的数据库中的几个表,我偶然发现了一个问题。 我的数据库中有一对多关系,模型没问题。如果我想通过Admin界面从/向我的数据库中添加/删除/显示记录,一切正常。 唯一的问题是外键字段显示为对象,我不知道如何将其切换为名称。
class Locations(db.Model):
__tablename__ = "locations"
id = db.Column('id', db.Integer, primary_key=True)
name = db.Column('name', db.Unicode)
code = db.Column('code', db.Unicode)
servers = db.relationship('Servers', backref='location', lazy='dynamic')
subnets = db.relationship('Subnets', backref='location', lazy='dynamic')
class Servers(db.Model):
__tablename__ = "servers"
id = db.Column('id', db.Integer, primary_key=True)
serialnum = db.Column('serialnum', db.Unicode)
hostname = db.Column('hostname', db.Unicode)
type = db.Column('type', db.Unicode)
locationid = db.Column('locationid', db.Integer, db.ForeignKey('locations.id'))
idrac = db.relationship('Idracs', backref='server', lazy='dynamic')
interface = db.relationship('Interfaces', backref='server', lazy='dynamic')
class ServersView(ModelView):
column_searchable_list = ('hostname', 'type', 'serialnum')
column_list = ('location', 'hostname', 'type', 'serialnum')
form_columns = [ 'location', 'hostname', 'type', 'serialnum' ]
admin.add_view(ServersView(Servers, db.session))
当我想列出或创建新记录时,我希望看到该位置的名称,而不是对象 main .Locations。
任何人都可以给我一个小提示吗?
提前致谢!