Djangoでファイルストレージを操作しようとしています。すべてが正常に機能していますが、私の保存方法にあると思います。私はモデルを持っていますFileField
download_url = models.FileField(verbose_name = 'Konfig', upload_to = file_path, storage = OverwriteStorage())
私のモデルのこのメソッドでは、file_path
def file_path(instance, filename):
path = os.getcwd() + '/files'
return os.path.join(path, str(instance.download_url), filename)
そして、私が使用するファイルストレージの方法は、models.py にインポートするstorage.pyで外部委託されています。
from django.core.files.storage import FileSystemStorage
class OverwriteStorage(FileSystemStorage):
def _save(self, name, content):
if self.exists(name):
self.delete(name)
return super(OverwriteStorage, self)._save(name, content)
def get_available_name(self, name):
return name
django から管理インターフェイスで新しいファイルを作成すると、ファイルが正常にアップロードされ、正しいファイルパスでデータベース エントリが作成されますが、正しいパスの作成に失敗します。ファイル名がfooの場合、パスは次のようになります。
cwd/ファイル/foo/foo
その名前がbar.txtの場合、次のようになります。
cwd/files/bar.txt/bar.txt
ファイル名に基づいてdjangoにサブディレクトリを作成させたくありません。手伝ってくれませんか?