【发布时间】:2019-08-15 23:39:06
【问题描述】:
我有一个 Flask 应用程序,它使用 Flask-admin 进行仪表板和原始模型对象操作。该应用程序有一个User 类供登录网站的用户使用,Contact 类供每个用户输入的联系人使用。
我希望 Flask-admin 的“联系人”选项卡中的每一行都显示输入它的用户的电子邮件。我已经设置了这样的代码:
class User(UserMixin, db.Model):
id = db.Column(db.Integer, primary_key=True)
contacts = db.relationship('Contact', backref='user')
# [...]
def __repr__(self):
return f'{self.email}'
class Contact(db.Model):
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
# [...]
此设置不会显示“用户”列。我没有使用column_exclude_list 排除它。我尝试使用 column_list 显式显示“用户”列,并且 DID 显示了一列,但它是空的。 (我最终将使用它,但为了简化操作,我暂时将其关闭。)
除了实现__repr__() 并包括与链接两个模型对象的反向引用的关系之外,我还需要做什么才能使此列出现?如何调试它为什么不显示?
我确实注意到,我在 Export 类上声明了第二个关系,该关系使用 backref 也称为 'user'。 Export.user 正在工作!当我第一次注意到这一点时,我禁用了第二个关系,但这并没有修复 Contact.user 关系。
【问题讨论】:
标签: python flask flask-admin