特権プロフィール
スーパユーザのみが指定されたデータにアクセスすることができ、平均的なユーザーはアクセスできませんので、我々は権限コンポーネントを制限する必要があります
二つの局所使用
rest_framework.permissions インポートBasePermissionの クラス:UserPermission(BasePermission) メッセージ = ' 不是超级用户、查看不了' DEF has_permission(自己、リクエスト、ビュー): #USER_TYPE = request.user.get_user_type_display() #USER_TYPE場合==「を超级用户「: USER_TYPE = request.user.user_type プリント(USER_TYPE) 場合 USER_TYPE == 1 : 返す真の 他: 返すFalseの クラスコース(APIViewを): authentication_classesを= [TokenAuth、] permission_classes = [UserPermissionには、] デフ(自己、リクエスト)を取得: 返すのHttpResponseを(' 取得' ) デフ(自己、リクエスト)投稿: 返すのHttpResponseを(' ポスト')
局所使用には、専用のビュークラスに追加する必要があります。
permission_classes = [UserPermission、】
3つのグローバル使用
REST_FRAMEWORK = { " DEFAULT_AUTHENTICATION_CLASSES ":[ " app01.service.auth.Authentication " 、]、 " DEFAULT_PERMISSION_CLASSES ":[ " app01.service.permissions.SVIPPermission " 、] }
4つのソースコード解析:
デフcheck_permissions(自己、リクエスト): のための許可中(self.get_permissions): もし ないpermission.has_permission(リクエスト、自己): self.permission_denied( リクエスト、メッセージ = GETATTR(許可、' メッセージ' 、なし) )
self.get_permissions()
デフ:get_permissions(自己) を返す [許可()のための許可で self.permission_classes]
最初のクラスビュー:クラスのための使用許可権限クラスを、の構成では、その後の設定パーミッションクラスデフォルトでようやく、および権限のクラス