添加过滤器并在Flask-admin中搜索具有多个外键的模型到同一模型

时间:2014-09-15 00:27:17

标签: python sqlalchemy flask-sqlalchemy flask-admin

有没有办法在flask-admin中为同一模型有2个外键的模型添加过滤器和搜索支持?下面是一个示例sqlalchemy模型 - 其中两个字段是同一用户模型的外键。

class Message(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    to_user_id = db.Column(db.Integer, db.ForeignKey('user.id'), index=True, nullable=False)
    from_user_id = db.Column(db.Integer, db.ForeignKey('user.id'), index=True, nullable=False)    
    subject = db.Column(db.String(512), default="")
    content = db.Column(db.Text, default="")
    to_user = relationship("User", foreign_keys=[to_user_id])
    from_user = relationship("User", foreign_keys=[from_user_id])

如果我添加' to_user.id'与普通字段一样,对于column_filters,我得到以下错误,因为flask-admin不知道要加入User表的哪个fk字段。

  

InvalidRequestError:找不到要加入的FROM子句。试着   加入用户,但得到:无法确定'消息之间的联接'和   '用户&#39 ;;表具有多个外键约束关系   它们之间。请指明' onclause'明确加入。

1 个答案:

答案 0 :(得分:2)

此问题已在Flask-Admin 1.2.0中得到解决和修复,请更新至1.2.0并使用字符串指定路径:' rel1.something'。

参考文献: