2017-08-02 3 views
3

私は自分のプロジェクトにDjango-rest-swaggerを設定しています。私はDjango-restframeworkに以下の設定をしています。Django Swaggerが許可なくURLを表示しないクラス

REST_FRAMEWORK = { 
    'DEFAULT_AUTHENTICATION_CLASSES': (
     'oauth2_provider.contrib.rest_framework.OAuth2Authentication', 
    ), 
    'DEFAULT_PERMISSION_CLASSES': (
     'rest_framework.permissions.IsAuthenticated', 
    ), 
} 

さて、私はこの

class CreateUserView(viewsets.ModelViewSet): 
    serializer_class = UserServiceSerializer 
    authentication_classes = [] 
    permission_classes = [] 

class UserProfileView(viewsets.ModelViewSet): 

    serializer_class = UserProfileSerializer 
    serializer_class_2 = UserServiceSerializer 

のようないくつかの許可クラスでビューを持っているとき、私は次のビュー

enter image description here

しかし、この

のように、両方のビューで permission_classesを追加を参照してください
class CreateUserView(viewsets.ModelViewSet): 
    serializer_class = UserServiceSerializer 
    authentication_classes = [] 
    permission_classes = [] 

class UserProfileView(viewsets.ModelViewSet): 

    serializer_class = UserProfileSerializer 
    serializer_class_2 = UserServiceSerializer 
    permission_classes = [] 

私は私がすべての私の見解で同じクラスを持っていると私は私の残りの部分、フレームワークの設定であることを述べてきたように、すべてのビューにパーミッションクラスを追加する必要はありません。この

enter image description here

ようなビューを参照してください。どうやってやるの?

答えて

1

permission_classes[]と設定すると、このビューのデフォルトの権限クラスが空になります。コルスの

、あなたはすべてのビューのために、デフォルトでは、この動作を設定することができます。

REST_FRAMEWORK = { 
    # ... 
    'DEFAULT_PERMISSION_CLASSES': (
     'rest_framework.permissions.AllowAny', 
    ), 
} 

をしかし、注意してください、その場合には無許可のユーザーは、データベース内のレコードを作成することができます。

スワッガーのAuthorizeボタンをクリックして、トークンまたはログインとパスワードを入力してください(SECURITY_DEFINITIONS settingに依存)。

+0

私が尋ねたクエストオンは、私のビューでいくつかのパーミッションクラスについて言及すると、そのビューに関連するURLは揺さぶられて表示されるということです。私の設定でデフォルトの権限クラスを使用していることを意味するパーミッション・クラスについて言及していない場合、そのビューに関連するURLは冗長では表示されません。 –

+0

デフォルトでは、公開されているパブリックメソッドのみが表示されます。これは、デフォルトでは認証資格情報がないためです。最初のケースでは 'permission_classes'が空でパブリックビューであるため' CreateUserView'からのURLを表示します。 'UserProfileView'はデフォルト設定を使用します。後者の場合、 'UserProfileView'も公開します。さまざまな権限[ここ](http://www.django-rest-framework.org/api-guide/permissions/#setting-the-permission-policy)の詳細を読むことができます。 –

+0

それは有用な情報です。手伝ってくれてありがとう。親切に答えに追加してください。ありがとう –

関連する問題