我正在创建一个Flask-Admin应用,需要检查View,Edit&删除表格中的某些行。
即,我想:
我可以考虑重写方法query(),on_model_change()等来检查编辑许可,但是:
我怎么能实现这个目标?
答案 0 :(得分:3)
解决我自己问题的快速而肮脏的解决方案:
1。创建一个通用函数来检查ModelView类中的所有权
private String visit(String word) {
int count = 0;
if(word == ""){
return "<empty>";
}
//alphabet is an array that holds all characters that could be used in the String
for(int i = 0; i < alphabet.length; i++){
for(int j = 0; j < word.length(); j++){
if(alphabet[i] == word.charAt(j)){
count++;
}
if(count == 2){
return "";
}
}
count = 0;
}
return word;
}
2。覆盖ModelView的on_model_change,on_form_prefill,on_model_delete,get_query和get_count_query方法以检查所有权(user_id = current_user.id):
def is_owned(self, id):
model = db.session.query(self.model).filter(self.model.id == id).all()
if len(model) == 0:
return False
else:
model = model[0]
if model.user_id == current_user.id:
return True
return False