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

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

Django の settings.py に書かずに views.py の中に 1 つだけ書いて、それぞれのビュークラスはインクルードする方法は、次のとおりです。

まず、views.py に次のコードを追加します。

# 共通の設定を定義するクラス
class CommonSettings:
    permission_classes = [AllowAny]
    cors_allowed_origins = ["http://localhost:5173"]
    cors_allowed_methods = ["GET"]
    cors_allow_credentials = True

次に、それぞれのビュークラスで次のコードを追加して、CommonSettings クラスをインクルードします。

from .common_settings import CommonSettings

class MyView(APIView):
    settings = CommonSettings()

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

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

この方法では、settings.py に共通の設定を定義し、それぞれのビュークラスで CommonSettings クラスをインクルードすることで、共通の設定を集中管理できます。

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

class MyView(APIView):
    settings = CommonSettings()
    settings.cors_allowed_origins = ["http://example.com"]

この記事が気に入ったらサポートをしてみませんか?