0

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

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

任何想法?谢谢

4

2 回答 2

0

可能最好的方法是使用动态关系加载器。只需在您的关系定义中使用 lazy='dynamic' :

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

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

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

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

于 2014-07-08T18:12:35.100 回答
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)
于 2017-05-16T16:59:32.753 回答