今天在做个网站的时候需要动态判断将Image保存的位置,前面我说了动态改变上传文件名的方法,即自定义上传的文件名。这里说的是更加上传文件来判断将文件保存的位置。

刚开始我使用了重写Model的save方法来改变ImageFiled的upload_to属性,结果没有反映。后来在google上小搜一下,方法就有了。如下:

定义ImageField或FileField的时候给upload_to知道一个函数,而这个函数就是用于返回保存文件的目录的,这个函数接受两个参数,第一个参数就是Model,第二个是文件的名字,就是你上传的文件名字。

实例:

def get_file_path(model, filename): return 'upload/photo/%s/%s/%s' % (model.catalog.name, model.category.name, filename)

这里的model.catalog.name和model.category.name是假设的model的大类和小类,而没有对文件名改变。

OK!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐