如何使用所有imageFields删除对象和所有相关对象(照片库)

时间:2011-07-01 15:30:33

标签: python django django-models django-views

我有一个带有相册模型的照片库(只是标题和日期和内容)以及一张照片模型,其中包含一张foriegn键以及三张imageFields(常规,中间和拇指)。

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

无法找到任何关于此事的信息,并且实际上找到了许多人从另一个人那里说出对话的答案。

任何人都可以澄清这一点,这是如何在现实世界中完成的?

非常感谢, 埃雷兹

1 个答案:

答案 0 :(得分:0)

以下是我想出的问题的可能答案:

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

    @login_required def remove_albums(请求):     if request.is_ajax():         如果request.method =='POST':             #if ajax调用删除我们得到要删除的专辑列表             albums_list = request.REQUEST ['albums_list']。rsplit(',')             对于albums_list中的专辑:                 obj_album = Album.objects.get(id = int(album))                 #getting图像的目录而不是需要删除                 dir_path = MEDIA_ROOT +'/ images / galleries /%d'%obj_album.id                 #deleting DB记录                 obj_album.delete()                 #testing是否有文件夹(如果没有上传文件,可能会有没有文件夹的记录 - 在上传图像之前删除相册)                 尝试:                     #deleting文件夹及其中的所有文件                     shutil.rmtree(dir_path)                 OSError除外:                     通过     返回HttpResponse('')

  3. 对不起代码的样子,不知道为什么,我不能让它显示正确...

    玩得开心,祝你好运: - )