如何避免在 Flask-Admin 上编辑 denied/filtered 记录
How to avoid edition of a denied/filtered record on Flask-Admin
我正在通过使用 get_query 为每个用户分隔记录来过滤记录。
def get_query(self):
return self.session.query(self.model).filter(self.model.userid == current_user.id)
但是,当用户直接在url中输入过滤记录的id时,并不能解决问题。我怎样才能避免这种情况?提前致谢。
您需要覆盖视图的 get_one
方法。请参阅 get_query and get_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()
我正在通过使用 get_query 为每个用户分隔记录来过滤记录。
def get_query(self):
return self.session.query(self.model).filter(self.model.userid == current_user.id)
但是,当用户直接在url中输入过滤记录的id时,并不能解决问题。我怎样才能避免这种情况?提前致谢。
您需要覆盖视图的 get_one
方法。请参阅 get_query and get_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()