Hel*_*nar 3 django django-models django-admin
我有一个模特:
class Foo(models.Model):
poster = models.ImageField(u"Poster", upload_to='img')
Run Code Online (Sandbox Code Playgroud)
我正在使用管理员上传海报并保存Foo对象.我现在需要找到一种在保存之前将文件名小写的方法.例如,POSTER.png或Poster.png或poster.PNG应小写为poster.png.
实现这一目标最简单的方法是什么?
FileField.upload_to 根据文档中的这个评论,也可以是可调用的:
这也可以是可调用的,例如函数,它将被调用以获得上载路径,包括文件名.这个callable必须能够接受两个参数,并返回一个Unix风格的路径(带有正斜杠)以传递给存储系统.将传递的两个参数是:
既然ImageField继承了它的所有属性和方法FileField,我想你可以使用:
def update_filename(instance, filename):
path_you_want_to_upload_to = "img"
return os.path.join(path_you_want_to_upload_to, filename.lower())
class Foo(models.Model):
poster = models.ImageField(u"Poster", upload_to=update_filename)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
225 次 |
| 最近记录: |