我使用sqlalchemy并有两个模型,Article和Tag,它是一个多对多的关系。
当我使用Flask-Admin添加文章时,我只想要部分标签可用(与用户权限相关)而不是所有标签。
任何想法?感谢
答案 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)