이 질문에 대한 답변 Flask-Admin Role Based Access - Modify access based on role 역할 기반보기를 구현하는 방법, 특히 양식 및 column_lists에 관한 방법을 이해하지 못합니다.Flask-Admin 다른 역할에 대한 다른 양식 및 column_list
말 사용자가 일반 사용자 또는 수퍼 유저 인 경우 MyModelView
에 다른 열을 표시하려고합니다. MyModelView
에서 is_accessible
재정
정의 (NoneType
오류 AttributeError on current_user.is_authenticated()에 따라)되지 current_user
로 중 하나가 작동하지 않는 모든
from flask_security import Security, SQLAlchemyUserDatastore, current_user
class MyModelView(SafeModelView):
# ...
def is_accessible(self):
if current_user.has_role('superuser'):
self.column_list = superuser_colum_list
self.form_columns = superuser_form_columns
else:
self.column_list = user_colum_list
self.form_columns = user_form_columns
return super(MyModelView, self).is_accessible()
# Has same effect as
def is_accessible(self):
return super(MyModelView, self).is_accessible()
및 정의 조건부 클래스 속성에 영향을주지 않습니다. 모델 뷰의 __init__
존재와 동등한에서 같은 일을, current_user
여전히
class MyModelView(SafeModelView):
#[stuff]
if current_user.has_role('superuser'):
column_list = superuser_colum_list
form_columns = superuser_form_columns
else:
column_list = user_colum_list
form_columns = user_form_columns
#[other stuff]
참고
을 정의되지 않은,SafeModelView
는 앞서 언급 한 문제의
dgBaseView
에서 상속하는 모든 클래스가 될 수 있습니다.
current_user가 정의되지 않은 이유는 무엇입니까? flask_login을 사용하지 않습니까? – cal97g
플라스크에 직접 로그인하지 않았습니다. 가져 오기가 업데이트 된 게시물 – ted
current_user가 요청 (https://stackoverflow.com/questions/12710036/attributeerror-on-current-user-is-authenticated) 외부에 존재하지 않습니다. – ted