Django5.0から5.1へアップデートしたら、No such file or directoryになった

に公開

はじめに

settings.py
 # ↓5.1で廃止
 DEFAULT_FILE_STORAGE = "foo.bar.HogeStorage"

S3からファイルを読み込むようにカスタムStorageを使って実装していました。
カスタムStorageを読み込むためにDEFAULT_FILE_STORAGEを定義していました。
バージョンアップした途端に、No such file or directoryとエラーが出て少し時間を取られたので、解決方法を記します。

DEFAULT_FILE_STORAGEは廃止された

The DEFAULT_FILE_STORAGE and STATICFILES_STORAGE settings is removed.

となっています。

https://docs.djangoproject.com/en/5.1/releases/5.1/

解決方法

公式のやり方に則って、以下のように変えてみる

settings.py
 # ↓新しい書き方
  STORAGES = {
     "default": {
        "BACKEND": "foo.bar.HogeStorage",
      },
      "staticfiles": {
          "BACKEND": "django.contrib.staticfiles.storage.StaticFilesStorage",
      },
  }
  # DEFAULT_FILE_STORAGE = "config.storage_backends.MediaStorage"

すると改善されました。🦀
changelogをみると、warningが出るように書いてあるみたいですが、どうやって出すのかがわからない。🤦

Discussion