ここでは、いくつかのスクリプトを行う必要があります。ここでdjango-extensionsを使うことができます。
python manage.py runscript migrate_file
このスクリプトは、主にファイルを果たしており、あなた:あなたはFile
あなたのモデルを想定すると、プロジェクトの設定と同じに を実行するには、スクリプトレットのmigrate_media_files.py
import os
from django.conf import settings
from shutil import copyfile
def run():
base_dir = settings.BASE_DIR
media_dir = os.path.join(base_dir,'project_name/media')
for file in Files.objects.all():
old_file_path = os.path.join(media_dir, file.image.name)
dir_name = '/{}-{}/{}-{}/'.format(file.theme,file.name,file.id, file.name)
if not os.path.exists(os.path.join(media_dir, dir_name)):
os.makedirs(os.path.join(media_dir, dir_name))
new_file_name = '/{}-{}/{}-{}/{}-{}.txt'.format(file.theme,file.name,file.id, file.name, file.id, file.name)
new_file_path = os.path.join(media_dir, new_file_name)
copyfile(old_file_path, new_file_path)
file.image.url = new_file_name
file.save()
を書くことができます https://github.com/django-extensions/django-extensions オブジェクト。変更とテストが必要な場合があります。ではごきげんよう。
新しいディレクトリに 'mv'または' cp'ファイルだけを置いて、ターミナルで名前を変更してください。さて、ジャンゴでは、後でパスを置き換えますか? – Lucas03
まあ、それは完全にはっきりしていないかもしれませんが、ファイルはデータベース/ models.pyに格納されている他の情報に基づいて削除/名前を変更する必要があります。だから、それらを「手動で」動かすことは本当に可能ではないと私は思います。 – Landcross
詳細情報を入力してください。 dbのファイル名/ディレクトリ構造は何ですか?彼らはどのように見えますか? – Lucas03