python - 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
属性。
解决方案
该upload_to
参数可能是一个可调用的,预期接受 2 个参数:实例和文件名。见这里。
推荐阅读
- javascript - foreach 是否保证每次在相同的数据集上都以相同的顺序循环?
- ruby - 访问 Json 对象导轨
- regex - Hive regexp_extract 返回 NULL
- r - R - 访问列名称的 XML 模式属性名称
- versionone - 当网络出现故障时,如何在 Continuum 中重新运行活动?
- python - 替换列表中的每个元素
- user-interface - 气流显示超过 365 达格伦
- c++ - 如何在调用 pthread_cond_destroy 之前发出信号以中止/唤醒所有等待条件变量的线程?
- javascript - 我想知道是否可以遍历包含数组的对象数组来查找数组
- javascript - 添加两个值时 JavaScript 返回 NaN