【发布时间】:2021-01-30 15:11:12
【问题描述】:
这是此Django dynamic models.FileField Storage 的重复问题,但尚未通过正确的解决方案回答该问题。
我也有类似的用例。我需要根据模型字段动态更改存储。
我已经尝试使用可调用存储https://docs.djangoproject.com/en/3.1/topics/files/#using-a-callable。但我认为这个可调用对象在模型字段值初始化之前被调用。
编辑: 我有的代码示例:
class MediaDocument(models.Model):
file_name = models.CharField(max_length=255)
object_storage_name = models.CharField(max_length=255, null=True)
file = models.FileField(upload_to=mediadocument_directory_path, storage=select_storage(object_storage_name))
我想做这样的事情:
def select_storage(object_storage_name):
if object_storage_name == 'alibaba OSS':
return AlibabaStorage
else:
return MediaStorage
请建议我该怎么做。
【问题讨论】:
标签: django django-models storage django-storage