Django:模型的动态存储文件夹。

时间:2019-03-27 14:08:16

标签: python django dynamic directory storage

我的模型中有一个ImageField,我想根据用户会话var动态存储图像URL。 像这样的虚构:

logo = models.ImageField(null=True, upload_to = 'empresas/'+codEmp+'/logo/')

并且var codEmp是一个会话变量: request.session['codEmp']

因此,如果用户的codEmp例如为“ McDonalds”,则应保存以下路径:“ empresas / McDonalds / logo / imaginary_picture.jpg”。

我通过 init 尝试过,但是我无法完成它,而且不确定是否可以使用。

class Empresa(models.Model):
    def __init__(self, filter_on, *args, **kwargs):
        super(Empresa, self).__init__(*args, **kwargs)
        codEmp = filter_on
        logo = models.ImageField(null=True, upload_to = 'empresas/'+codEmp+'/logo/')

我尝试在ModelForm中执行此操作,但似乎forms.ImageField没有upload_to属性。

1 个答案:

答案 0 :(得分:2)

upload_to参数可能是可调用的,预期可以接受2个参数:实例文件名。参见here