ここに非常によく似たスレッドがあることは知っていますが、問題の解決策を見つけることができません。
djangomodels.FileFieldに保存されているファイルの名前を変更する必要があります
私はこれを試しました
os.rename(old_path, new_path)
mod.direct_file = File(open(new_path))
mod.save()
この
mod.direct_file.save(new_path, File(open(old_path)))
os.remove(old_path)
そして他の多くの方法が、何も役に立たなかったようです。新しいファイルはあらゆる方法で作成されますが、ファイルフィールドのデータはまったく変更されません。
編集:解決済み
os.rename(old_path, new_path)
cursor = connection.cursor()
cursor.execute("UPDATE mods_mod SET direct_file = %s WHERE id = %s", [new_name, mod.id])
transaction.commit_unless_managed()