2016-12-18 4 views
0

私はImageFIeld.upload_toパラメータを変更した場合、以前にアップロードしたファイルを移行時に移動する必要がありますか?

... 
image = models.ImageField(default=None, upload_to=settings.PHOTO_UPLOAD_TO) 
... 

とDjangoのモデルは、私がsettings.PHOTO_UPLOAD_TOの値を変更したましたが、彼らがいた場所のファイルが残っている、とデータベースエントリも変更されているようには見えません。新しく追加されたイメージは、正しい場所に置かれますが、古い場所には置かれません。それは期待された行動ですか?イメージの場所を移行する方法はありますか?私はプロジェクトのディレクトリ/ URL構造を少し変更したいと思います。

答えて

0

FileField/ImageFieldのパスがMEDIA_ROOTに対して保存されているので、あなたは新しいupload_toフォルダにファイルを移動する場合、あなたは(あなたが示唆したように)あなたの移行を自分でそれを置くつもり必要です。

+0

つまり、ファイルの移動と、データベースエントリの変更を 'migrations/00xx_yyy.py'ファイルにプログラムする必要がありますか? – texnic

+0

モデルの移行とデータの移行を分離する方がよいでしょう。 './manage.py makemigrations youapp --empty'で空の移行を作成することができます – Mounir

関連する問題