删除上传文件失败

时间:2012-10-28 19:02:35

标签: django file-upload delete-file

我想删除与文件字段关联的文件 但它不起作用。

你能解决它吗?

Models.py

class Picture(models.Model):

    file = models.FileField(upload_to="pictures")
    slug = models.SlugField(max_length=50, blank=True)

    def __unicode__(self):
        return self.file

    def getFileName(self):
        return self.docfile.name

Views.py

def delete(self, request, *args, **kwargs):
    """
    This does not actually delete the file, only the database record.
    """
    self.object = self.get_object()
    path = "/media/pictures" + '/' + self.object.name
    #path = MEDIA_ROOT + '/' + self.object.name
    #path = MEDIA_ROOT + '/' + self.object.getFileName()
    self.object.delete()
    os.remove(path)

1 个答案:

答案 0 :(得分:3)

您可以使用FileField api:

删除文件对象
Picture.objects.get(...).file.delete()

这将使用storage API删除该文件。这样做的好处是,即使您希望将存储切换到不同的系统(如Amazon S3),此方法仍然有效。