首页 > 解决方案 > Django:models.ImageField 的动态存储文件夹

问题描述

我的模型中有一个 ImageField,我想根据用户会话变量动态存储图像 url。想象的像这样:

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

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

因此,如果用户的 codeEmp 是例如“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属性。

标签: pythondjangodynamicdirectorystorage

解决方案


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


推荐阅读