相关疑难解决方法(0)

Django删除FileField

我正在Django中构建一个Web应用程序.我有一个上传文件的模型,但我无法删除它.这是我的代码:

class Song(models.Model):
    name = models.CharField(blank=True, max_length=100)
    author = models.ForeignKey(User, to_field='id', related_name="id_user2")
    song = models.FileField(upload_to='/songs/')
    image = models.ImageField(upload_to='/pictures/', blank=True)
    date_upload = models.DateField(auto_now_add=True)

    def delete(self, *args, **kwargs):
        # You have to prepare what you need before delete the model
        storage, path = self.song.storage, self.song.path
        # Delete the model before the file
        super(Song, self).delete(*args, **kwargs)
        # Delete the file after the model
        storage.delete(path)
Run Code Online (Sandbox Code Playgroud)

然后,在"python manage.py shell"中我这样做:

song = Song.objects.get(pk=1)
song.delete()
Run Code Online (Sandbox Code Playgroud)

它从数据库中删除,但不从服务器上的文件中删除.我还能尝试什么?

谢谢!

django django-models

75
推荐指数
7
解决办法
4万
查看次数

标签 统计

django ×1

django-models ×1