小编kla*_*cht的帖子

在 django 中上传时替换文件

我的models.py中有以下代码:

def upload_to_cars(instance, filename):
    blocks = filename.split('.')
    ext = blocks[-1]
    filename = "%s.%s" % (instance.name.replace(" ", "-"), ext)
    instance.title = blocks[0]
    return filename

class Cars(models.Model):
    image_file = models.ImageField(upload_to=upload_to_cars, null=True, blank=True)
    name = models.CharField(max_length=200)
Run Code Online (Sandbox Code Playgroud)

当我上传第二张图片时,我希望删除第一张图片。这样每个汽车类别总是只有一个图像。相反,当我上传第二个时,django 会在文件名的末尾添加一些字符。

我是这么想的

filename = "%s.%s" %
Run Code Online (Sandbox Code Playgroud)

旧图像将被替换?

有什么建议吗?

谢谢 !

编辑

感谢 zxzak 我做到了,对我来说,它的工作方式略有不同(使用os.remove(path)):

    try:
        this = Company.objects.get(id=self.id)
        if this.image_file:
            os.remove(this.image_file.path)
    except ObjectDoesNotExist:
        pass
Run Code Online (Sandbox Code Playgroud)

python django image-uploading models

1
推荐指数
1
解决办法
1351
查看次数

在 python/django 中灰度的最佳方法是什么?

我想对将上传到 django 的图像进行灰度处理。所以我找到了两种方法,要么是opencv,要么是imagemagick。在 imagemagick 中,imagemagickWand 可能会更好,因为它减少了。

从教程中我认为 openCV 更容易实现。

有任何想法吗?

python django image imagemagick opencv3.0

-1
推荐指数
1
解决办法
949
查看次数