Flask 烧瓶管理中关系(sqlalchemy)的动态条件

Flask 烧瓶管理中关系(sqlalchemy)的动态条件,flask,flask-sqlalchemy,flask-admin,Flask,Flask Sqlalchemy,Flask Admin,我使用sqlalchemy,有两个模型,Article和Tag,这是一个多对多关系 当我使用Flask Admin添加文章时,我只需要部分可用标记(与用户权限相关),而不是所有标记 有什么想法吗?谢谢也许最好的方法就是使用。只需在关系定义中使用lazy='dynamic': posts = relationship(Post, lazy="dynamic") 这将返回一个查询对象而不是对象集合,因此您可以直接查询: posts = jack.posts.filter(Post.headline

我使用sqlalchemy,有两个模型,Article和Tag,这是一个多对多关系

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


有什么想法吗?谢谢

也许最好的方法就是使用。只需在关系定义中使用lazy='dynamic':

posts = relationship(Post, lazy="dynamic")
这将返回一个查询对象而不是对象集合,因此您可以直接查询:

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

您也可以使用鉴别器列或其他东西来实现您想要的功能,但这可能有些过分。

听起来您需要
ModelView。获取查询

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