1

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

请问可以修吗?

模型.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

视图.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)
4

1 回答 1

3

FileField您可以使用api删除文件对象:

Picture.objects.get(...).file.delete()

这将使用存储API 来删除文件。这样做的好处是,即使您想将存储切换到不同的系统(例如 Amazon S3),这种方法也有效。

于 2012-10-28T19:11:17.113 回答