上传的图片再删除对象后,django不会自动删除在media_root下的实际文件,所以用
post_delete.connect(delete_file,sender=ModelA)
但是我有2个模型都有imageField,并且他们的属性名不一样,所以我希望delete_file函数是通用的,接受一个指定属性名的参数,这样我就可以.
from functools import partial
post_delete.connect(partial(delete_file,'attr_name_A'),sender=ModelA)
post_delete.connect(partial(delete_file,'attr_name_B'),sender=ModelB)
def delete_file(attrname,sender,**kwargs):
instance=kwargs['instance']
os.remove(os.path.join(BASE_DIR,instance.getattr[attrname].path))
但是没有成功,没报任何异常错误,delete_file没有执行。请问哪里有问题么?或者应该怎样调试?