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"],
}
この方法では、すべてのビュークラスに共通の設定を集中管理できます。また、特定のビュークラスでこれらの設定をオーバーライドすることもできます。