0

削除信号でdjango-storagesパッケージS3を使用して、S3からイメージを削除しようとしています。次のことを試しましたが(以下を参照)、エラーが発生します...

'ImageFieldFile'オブジェクトには属性がありません'startswith'

def product_pre_delete(sender, instance, **kwargs):
    """
    Sent at the beginning of a product delete() method product queryset's delete() method.
    """
    default_storage.delete(instance.qr_image)

models.signals.pre_delete.connect(product_pre_delete, sender=Product)
4

2 に答える 2

1

私の知る限り、django-storages はオブジェクト自体が削除されたときにのみファイルを削除します (削除のセクションまでスクロールします) https://django-storages.readthedocs.org/en/latest/backends/amazon-S3 .html?highlight=削除

オブジェクトを保持したいがファイルを削除したい場合は、S3 で作業するときに django-storages によって使用される基本ライブラリであるBotoを使用して、おそらく自分で処理する必要があります。

于 2013-02-22T15:44:50.627 に答える
1

私もこの問題に遭遇し、file.name ではなくファイル オブジェクトを使用しているため、「ImageFieldFile」オブジェクトに属性「startswith」エラーがスローされないことがわかりました。オブジェクトの使用はローカルで機能しますが、AWS では機能しません。オブジェクトにまだ関連付けられているファイルを正常に削除できたので、以下のコードは機能するはずです。

default_storage.delete(instance.qr_image.name)
于 2013-04-15T19:05:45.163 に答える