django admin 删除文件

django admin 自带的删除文件功能,只是在数据库层面的删除,而资源是不会删除的。下面的方法是删除资源的做法(慎用,删除的资源无法恢复)

1.action
def delete_source(modeladmin, request, queryset):
for obj in queryset:
try:
filename = obj.file_url.url
except Exception as e:
continue
file_path = os.path.join(BASE_DIR,filename)
os.remove(file_path)
obj.file_url = None
obj.save()
actions = [delete_source]

2.signal
1>注册信号


2>model增加delete方法

  3>自定义监听函数

  4>关联信号和监听函数

 


posted @ 2017-11-15 09:45  hyu9999  Views(745)  Comments(0)    收藏  举报