python教程—使用django强制惟一的上载文件名?-Python实用宝典

python教程—使用django强制惟一的上载文件名?

使用django在上传照片时在服务器上使用唯一文件名重命名照片的最佳方法是什么?我想确保每个名字只使用一次。有没有任何pinax应用程序可以做到这一点,也许与GUID?

使用django在上传照片时在服务器上使用唯一文件名重命名照片的最佳方法是什么?我想确保每个名字只使用一次。有没有任何pinax应用程序可以做到这一点,也许与GUID?

回答

使用uuid。要将其绑定到模型中,请参见Django documentation for FileField upload_to。

例如,在您的模型中,py定义了以下函数:

    import uuid import os def get_file_path(instance, filename): ext = filename.split('.')[-1] filename = "%s.%s" % (uuid.uuid4(), ext) return os.path.join('uploads/logos', filename)

然后,在定义FileField/ImageField时,将get_file_path指定为upload_to值。

    file = models.FileField(upload_to=get_file_path, null=True, blank=True, verbose_name=_(u'Contact list'))

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
0

发表评论