【问题标题】:dynamic condition for relationship(sqlalchemy) in Flask-AdminFlask-Admin 中关系(sqlalchemy)的动态条件
【发布时间】:2014-07-06 03:47:17
【问题描述】:

我正在使用 sqlalchemy 并且有两个模型,文章和标签,这是一个多对多的关系。

当我使用 Flask-Admin 添加文章时,我只想要部分可用标签(与用户权限相关)而不是所有标签。

有什么想法吗?谢谢

【问题讨论】:

    标签: flask flask-sqlalchemy flask-admin


    【解决方案1】:

    可能最好的方法是使用dynamic relationship loaders。只需在关系定义中使用lazy='dynamic':

    posts = relationship(Post, lazy="dynamic")
    

    这会返回一个查询对象而不是对象集合,因此您可以直接查询它:

    posts = jack.posts.filter(Post.headline=='this is a post')
    

    您也可以使用鉴别器列或其他东西来实现您想要的,但这可能是矫枉过正。

    【讨论】:

      【解决方案2】:

      听起来你需要ModelView.get_query

       class MyView(ModelView):
           def get_query(self,*args,**kwargs):
               return super(MyView,self).get_query(*args,**kwargs).filter_by(current_user.can_view=True)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-18
        • 2017-05-24
        • 1970-01-01
        • 2023-03-16
        相关资源
        最近更新 更多