2

FileFieldを持つモデルのインスタンスを削除すると、実際のファイルはMEDIA_ROOTフォルダーに残ります。これに対抗するために、私はpost_deleteシグナルをリッスンして、これを実行しています。

def delete_actual_file(sender,**kwargs):
  import os
  instance = kwargs.get("instance")
  os.unlink(instance.file.path)

post_delete.connect(delete_actual_file,sender=ModelWithFileField)

うまくいくようですが、このようにするのがベストプラクティスかどうかはわかりません。何かご意見は?

4

1 に答える 1

2

Which version of Django are you using? The behaviour changed in Django 1.3. The docs you might want are here and you can hook that into your signal, but it'd have to become a pre-delete action, I imagine.

于 2011-06-16T12:31:45.327 に答える