Flask-Admin中关系的动态条件(sqlalchemy)

时间:2014-07-06 03:47:17

标签: flask flask-sqlalchemy flask-admin

我使用sqlalchemy并有两个模型,Article和Tag,它是一个多对多的关系。

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

任何想法?感谢

2 个答案:

答案 0 :(得分:0)

执行此操作的最佳方法可能是使用dynamic relationship loaders。只需在关系定义中使用lazy ='dynamic':

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

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

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

你也可以通过鉴别器列或其他东西实现你想要的东西,但这可能有点过头了。

答案 1 :(得分:0)

听起来像你需要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)
相关问题