如何删除一个对象和所有相关对象,其中所有imageFields都在其中(照片库)



我有一个照片库,里面有一个相册模型(只有标题、日期等(,还有一个照片模型,里面有相册的foriegn键和三个imageFields(常规、中间和拇指(。

当用户删除相册时,我需要删除所有与相册相关的照片(从服务器(,然后删除指向相册的所有DB记录,然后删除相册本身。。。

找不到任何关于这件事的信息,实际上找到了很多答案,一个说opsite,另一个说。

有人能澄清这一点吗?在现实世界中是如何做到的?

非常感谢,Erez

以下是我发现的问题的可能答案:

  1. 获取字符串中的相册列表,在我的情况下用逗号分隔
  2. 你需要导入shutil,然后:

    @login_必需def remove_albums(请求(:if request.is_ajax((:如果request.method=="POST":#如果ajax调用delete what ok,我们会得到要删除的相册列表albums_list=请求。REQUEST['albums_list'].rsplit(','(对于相册列表中的相册:obj_album=相册.objects.get(id=int(相册((#获取需要删除的图像的目录dir_path=MEDIA_ROOT+'/images/galleries/%d'%obj_album.id#删除数据库记录obj_album.delete((#测试是否有文件夹(如果没有上传文件,可能有一个没有文件夹的记录-在上传图像之前删除相册(尝试:#删除文件夹及其所有文件shutil.rmtree(目录路径(除了OSError:通过return HttpResponse(''(

很抱歉代码看起来像这样,不知道为什么,我无法使其显示正确。。。

祝你快乐和好运:-(

最新更新