【问题标题】:How to avoid edition of a denied/filtered record on Flask-Admin如何避免在 Flask-Admin 上编辑被拒绝/过滤的记录
【发布时间】:2019-12-30 21:21:37
【问题描述】:

我正在过滤记录,方法是使用 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】:

    您需要覆盖视图的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()
    

    【讨论】:

      猜你喜欢
      • 2018-10-17
      • 1970-01-01
      • 2020-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-18
      • 2016-10-16
      • 2016-12-03
      相关资源
      最近更新 更多