DEFAULT_CORS_ALLOWED_ORIGINS等のsettings.pyでの管理方法

DEFAULT_CORS_ALLOWED_ORIGINS等のsettings.pyでの管理方法

Django の settings.py ファイルに次のコードを追加することで、すべてのビュークラスに共通の permission_classes、cors_allowed_origins、cors_allowed_methods、cors_allow_credentials を設定できます。

REST_FRAMEWORK = {
    "DEFAULT_PERMISSION_CLASSES": [AllowAny],
    "DEFAULT_CORS_ALLOWED_ORIGINS": ["http://localhost:5173"],
    "DEFAULT_CORS_ALLOWED_METHODS": ["GET"],
    "DEFAULT_CORS_ALLOW_CREDENTIALS": True,
}

これで、すべてのビュークラスで次のコードを削除できます。

permission_classes = [AllowAny]
cors_allowed_origins = ["http://localhost:5173"]
cors_allowed_methods = ["GET"]
cors_allow_credentials = True

さらに、特定のビュークラスでこれらの設定をオーバーライドするには、そのクラスの settings 属性を設定できます。たとえば、次のコードは、特定のビュークラスで cors_allowed_origins を "http://example.com" に設定します。

class MyView(APIView):
    settings = {
        "CORS_ALLOWED_ORIGINS": ["http://example.com"],
    }

この方法では、すべてのビュークラスに共通の設定を集中管理できます。また、特定のビュークラスでこれらの設定をオーバーライドすることもできます。

いいなと思ったら応援しよう!