求助,django,post_delete,partial

2014-11-20 09:17:42 +08:00
 lcqtdwj
上传的图片再删除对象后,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没有执行。请问哪里有问题么?或者应该怎样调试?
4013 次点击
所在节点    Python
2 条回复
Archangel_SDY
2014-11-20 12:11:44 +08:00
lcqtdwj
2014-11-20 12:57:06 +08:00
@Archangel_SDY 感谢,就是这个问题,解决了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/147912

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX