如何避免在Flask-Admin上编辑拒绝/过滤的记录

问题描述 投票:1回答:1

我正在使用get_query分隔每个用户的记录来过滤记录。

def get_query(self):
    return self.session.query(self.model).filter(self.model.userid == current_user.id)

但是当用户直接在url中键入过滤记录的ID时,它不能解决问题。如何避免这种情况?预先感谢。

flask flask-login flask-admin
1个回答
0
投票

您需要覆盖视图的get_one方法。请参阅文档中有关get_queryget_one的注释。

示例,假设使用SQLAlchemy:

def TestView(ModelView):

    def get_query(self):
        return self.session.query(self.model).filter(self.model.userid == current_user.id)

    def get_count_query(self):
         self.session.query(func.count('*')).select_from(self.model).filter(self.model.userid == current_user.id)

    def get_one(self, id):
        query = self.get_query()
        return query.filter(self.model.id == id).one()
© www.soinside.com 2019 - 2024. All rights reserved.