【问题标题】:How to dynamically select storage on the basis of model fields?如何根据模型字段动态选择存储?
【发布时间】: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


    【解决方案1】:

    幸运的是,在互联网上得到了这篇文章https://medium.com/@hiteshgarg14/how-to-dynamically-select-storage-in-django-filefield-bc2e8f5883fd

    它解决了类似的用例。

    【讨论】:

      猜你喜欢
      • 2016-03-25
      • 1970-01-01
      • 2011-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-28
      • 1970-01-01
      • 2021-10-25
      相关资源
      最近更新 更多